[英]Machine-Specific HttpWebResponse Timeout
我有一個非常奇怪的機器特定問題。 在某些機器上,下面的代碼有效,在其他機器上,它凍結直到GetResponse()調用引發超時異常。
string url = "https://myserver/myimage.png";
System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) =>
{
return true;
});
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "GET";
req.AllowAutoRedirect = false;
try
{
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
{
Console.WriteLine("Success");
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.ToString());
}
Console.ReadKey();
我在工作的機器和失敗的機器之間找不到任何操作系統/配置模式。 這是一個與管理員用戶一起運行的控制台應用程序。
唯一需要注意的是,要訪問的URL是運行在使用自發SSL證書的測試服務器中的映像,因此需要使用上面代碼中顯示的ServerCertificateValidationCallback的變通方法。
我測試的其他URL正常運行。
誰能幫助我確定此問題和解決方法的可能原因?
和往常一樣,一旦弄清楚,它就非常簡單:不存在問題的計算機已安裝.Net Framework 4.5。
這很可能是由於4.5是4.0 的就地更新 ,並包含對核心庫的若干錯誤修正。
我在Win7和VS2010上遇到了相同的問題,並且通過Windows Update解決了 - 更新到.NET 4.5.1
值得一提的另一件事是,它僅在特定的服務器中發生, 而不僅在特定的客戶端中發生。
(我會發表評論,但沒有足夠的評分)
沒有人解決此問題而不使用Windows Update嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.