【问题标题】:Not able to connect to website URLs from Asp.Net WebApi Action Methods无法从 Asp.Net WebApi 操作方法连接到网站 URL
【发布时间】: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


【解决方案1】:

最后在这里找到了答案:Web Request through Proxy using RestSharp

添加:

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
</system.net>

到我的网络配置为我修复了它。

【讨论】:

    猜你喜欢
    • 2020-11-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多