【发布时间】:2014-11-10 13:52:46
【问题描述】:
我正在尝试在 Asp.Net Web Api 项目中使用 WebClient 连接到 URL。我的目的是获取内容并创建网站缩略图。
示例代码:
using (var client = new WebClient())
{
var contents = client.DownloadString("http://www.google.com");
}
但是这个 WebClient 客户端对象在 WebApi 的情况下会抛出超时异常,并且同样适用于控制台应用程序。
请帮忙。
【问题讨论】:
-
谁抛出超时异常?是 MVC 框架本身还是 WebClient?我会尝试使用
WebClient.DownloadStringAsync方法。 -
代码行 var contents = client.DownloadString("google.com"); 正在抛出超时异常。
-
我遇到了与此相同的问题,或者看起来是这样。我实际上正在使用 RestSharp,并且看到了相同的模式。在控制台应用程序中工作,在 MVC 中超时。我尝试将上面的代码作为更简单的测试,并且发生了同样的情况。任何更新?对于设置,这是在我的机器上本地运行的,使用 Visual Studio 进行调试。上面的示例代码在 LinqPad 中也可以正常运行...扯掉我的头发!
-
@xan - 我仍在寻找解决方案。 :(
-
我在其他地方读过一些 cmets,因此 ASP 应用程序中的死锁对 SyncronizationContext 和线程锁定的限制。在这种情况下感觉不对,因为“client.DownloadString()”是同步的,对吧?我尝试切换到 HttpClient 而不是 WebClient,认为它有点裸机,可能会提供更多信息。完全相同的问题,但只是得到一个“任务取消”异常。
标签: c# asp.net-mvc asp.net-web-api