簡體   English   中英

0x80004005 連接嘗試失敗,因為連接方在一段時間后沒有正確響應

[英]0x80004005 A connection attempt failed because the connected party did not properly respond after a period of time

我在從 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) 

從您的錯誤消息來看,我注意到您正在嘗試訪問 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>

有關日志記錄的更多詳細信息:

使用 system.net 創建跟蹤日志

我也遇到了同樣的問題,只需對網絡進行故障排除即可解決。

在 windows -> 設置 -> 網絡和 Internet -> 網絡疑難解答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM