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

问题描述 投票:0回答:2

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

即使它在 HTML/Java 脚本应用程序的服务器中运行良好。唯一的问题发生在服务器托管的 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) 
asp.net web-services httpwebrequest httpwebresponse
2个回答
0
投票

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

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

我建议使用 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>

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

使用 system.net 创建跟踪日志


0
投票

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

在 Windows -> 设置 -> 网络和 Internet -> 网络疑难解答

© www.soinside.com 2019 - 2024. All rights reserved.