0x80004005连接尝试失败,因为连接方在一段时间后没有正确响应

时间:2013-12-19 05:38:57

标签: asp.net web-services httpwebrequest httpwebresponse

从ASP.NET应用程序访问Web服务时,我遇到了这个问题 但是当它托管在Windows服务器中时会出现问题 当它托管在桌面上时它工作正常。
我用HttpWebRequest对象调用Web服务。

即使它在HTML / Java Script应用程序的服务器中运行良好。在服务器中托管的ASP.NET应用程序中只出现问题。我得到以下错误。 IIS 8.0安装在服务器中。

Unable to connect to the remote server
System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 153.2.228.76:443 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at VSPTestApplication.UPS.CalculateRate_Click(Object sender, EventArgs e)
System.IO.Stream GetRequestStream(System.Net.TransportContext ByRef) 

2 个答案:

答案 0 :(得分:0)

从错误消息中看,我注意到您正在尝试点击HTTPS网址。在IIS中运行aspnet时,这可能很棘手,因为您的代码在不同的用户上下文中运行。并且可能不会在该上下文中安装必要的证书。例如,如果目标服务器具有由CA签署的证书,该证书不被客户端的机器(asp.net/iis/windows)信任,则该请求将不会成功。

但是,证书错误会很明显。它不会表现为连接失败。

我建议使用system.net日志记录工具来创建日志文件。这应该有助于解决问题。此外,您应该在Windows服务器上运行wireshark并查看服务器尝试连接的位置。它可能很简单,因为Windows服务器没有与目标的连接。或者中间可能有一个代理正在搞砸网络路径。

要设置system.net日志记录,您可以将以下配置文件放在与运行代码的应用程序相同的目录中。

<?xml version="1.0" encoding="UTF-8" ?>

<configuration>
<system.diagnostics>
<trace autoflush="true" />

<sources>
<source name="System.Net">

<listeners>
    <add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
    <add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
    <add name="System.Net"/>
</listeners>
</source>
</sources>
<sharedListeners>
    <add
        name="System.Net"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="System.Net.trace.log"
    />
</sharedListeners>
<switches>
    <add name="System.Net" value="Verbose" />
    <add name="System.Net.Sockets" value="Verbose" />               
    <add name="System.Net.Cache" value="Verbose" />
</switches>

有关日志记录的更多详细信息:

creating a tracelog with system.net

答案 1 :(得分:0)

我也遇到了同样的问题,只是通过对网络进行故障排除就解决了。

在Windows->设置->网络和Internet->网络问题排查工具