HttpClient对localhost的请求非常慢甚至失败

时间:2014-02-11 14:03:39

标签: c# localhost dotnet-httpclient

我有一个小样本来测试HttpClient。代码如下。问题是,在大多数情况下,请求失败并且超时或主机未按时响应。相同的请求始终在浏览器中起作用。当它发生时,需要很长时间。

有趣的是,通过浏览器访问相同的URL总是可以毫无问题地运行。从同一页面上的另一台机器执行的相同代码也可以正常工作。

使用HttpClient访问localhost时,可能是什么原因导致此问题? 如何解决?

const string url = "http://localhost:12000/konnect/sync/adverts/status";
var handler = new HttpClientHandler();
handler.Proxy = null;
handler.UseProxy = false;
var client = new HttpClient(handler);
client.GetStringAsync(url).Result.Dump();

2 个答案:

答案 0 :(得分:4)

事实证明这与图书馆无关,因为通常与本地主机有关的请求大部分时间都会失败。当涉及到本地主机时,它可能是系统的问题。无论如何,我禁用了IPv6,但它仍然无效。

然而,有效的是rawcap。我意识到当我运行rawCap来监控127.0.0.1时,所有呼叫都成功完成。它似乎纠正了这个问题。希望它能帮助那些也与localhost有同样问题的人。

答案 1 :(得分:0)

只是想一想......打开Windows Lan设置并取消选中“自动检测设置”。我最近遇到了类似的情况,这个问题通过禁止这个设置来解决。