我正在开发一个运行在ASP.Net 3.5中的web应用程序
在应用程序的某个地方,我正在调用一个外部系统。此调用包括从特定的url下载字符串:
string targetUrl = BuildMyUrl();
WebClient wc = new WebClient();
string data = wc.DownloadString(targetUrl);此代码在可接受的响应时间(低于500)下运行得很好。
但是,在特定情况下,响应时间超过15秒。我可以重现这种行为,我可以清楚地看到很长一段时间是在DownloadString调用。
我不明白为什么在我的场景中会出现这种情况。
你会说:“嘿,目标系统太慢了”。但我无法在应用程序之外再现行为(我已经构建了一个小型控制台应用程序来隔离故障代码。永远不要有任何问题)。
我不知道现在该到哪里去了解这个问题。是什么使一个简单的下载数据变得冗长?
FYI:目标系统是身份验证服务。目标网址是同类的:
httpS://mysystem/validate?ticket=XXXYYY
也许https协议才是问题所在。
在IIS下使用WebClient类可以改变WebClient的行为吗?
编辑我尝试过:
Proxy对象的WebClient属性显式设置为null这些测试都没有成功。
发布于 2012-05-16 18:47:09
延迟是由于证书验证超时造成的。链中的一个颁发者未正确地部署在客户端服务器中。
发布于 2012-05-16 08:12:43
尝试使用费德勒或Chrome/FF浏览器中的集成网络分析器来查看HTTPS请求/响应及其标头。
https://stackoverflow.com/questions/9581369
复制相似问题