我有一个非常奇怪的特定于机器的问题。在某些机器上,下面的代码有效,在其他机器上它会冻结,直到 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 工作正常。
谁能帮我确定此问题的可能原因和解决方法?