2010-10-22 354 views
4

我有一个使用WebHttpRequest摆脱外部服务器响应客户端应用程序,它工作正常,但有些时候我发现了以下情况例外....引发WebException:无法连接到远程服务器

System.Net.WebException:无法连接 到远程服务器---> System.Net.Sockets.SocketException:一个 连接尝试失败,因为 关联方没有正确一段时间后 响应,或 建立的连接失败,因为 连接的主机未能响应 xx.xx.xxx.xxx:xxx在 System.Net.Sockets.Socket.DoConnect处 系统 System.Net.Sockets.Socket.InternalConnect(端点 remoteEP)(端点 endPointSnapshot,为SocketAddress SocketAddress的)。内 异常堆栈的Net.ServicePoint.ConnectSocketInternal(布尔 connectFailure,插座s4中,插座S6, 插座&插座,ip地址&地址, ConnectSocketState状态,IAsyncResult的 asyncResult,的Int32超时,异常& 除外)---完跟踪---

在 System.Net.HttpWebRequest.GetRequestStream(TransportContext & 上下文)

在 System.Net.HttpWebRequest.GetRequestStream()

....任何帮助吗?

回答

3

这更多的是“请求超时”错误。您尝试连接的服务器未响应您的请求。您应该使用try-catch处理此异常,并尝试再次在catch块中连接n次。

+0

我试图通过增加超时,但没有解决。它适用于许多请求,但在许多成功的事务处理中,这种异常被提出并没有时间或数量的事务失败模式。 – Yared 2010-11-02 16:40:50

+0

现在我收到了一个特定的错误 System.Net.WebException:底层连接已关闭:发送时发生意外错误。 ---> System.IO.IOException:由于远程方关闭了传输流,认证失败。在System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest)处的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)处的 。 ---内部异常堆栈跟踪结束--- – Yared 2010-11-02 18:04:34

+0

似乎服务器是问题,而不是你的代码。服务器可能需要在连接期间设置某些选项。 – 2010-11-03 14:58:18