首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >慢WebClient.DownloadString?

慢WebClient.DownloadString?
EN

Stack Overflow用户
提问于 2012-03-06 09:58:01
回答 2查看 1.9K关注 0票数 3

我正在开发一个运行在ASP.Net 3.5中的web应用程序

在应用程序的某个地方,我正在调用一个外部系统。此调用包括从特定的url下载字符串:

代码语言:javascript
复制
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
  • 我已经用以下代码替换了DownloadData调用: var req =(HttpWebRequest)WebRequest.CreateDefault(新Uri(targetUrl));使用(var response = (HttpWebResponse)req.GetResponse()) {Uri (var sr =新StreamReader(response.GetResponseStream)){ data= sr.ReadToEnd();}

这些测试都没有成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-16 18:47:09

延迟是由于证书验证超时造成的。链中的一个颁发者未正确地部署在客户端服务器中。

票数 0
EN

Stack Overflow用户

发布于 2012-05-16 08:12:43

尝试使用费德勒或Chrome/FF浏览器中的集成网络分析器来查看HTTPS请求/响应及其标头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9581369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档