2014-02-11 2 views
1

У меня есть небольшой образец для проверки HttpClient. Код выглядит следующим образом. Проблема заключается в том, что в большинстве случаев запрос терпит неудачу с тайм-аутом или хостом, не реагируя на время. Тот же запрос работает в браузере все время. Когда это происходит, это занимает очень много времени.HttpClient очень медленные запросы на localhost и даже сбой

Интересно, что доступ к одному и тому же URL через браузер всегда работает без проблем постоянно. Выполняется тот же код, который выполняется на другом компьютере, на котором работает одна и та же страница.

Что может быть причиной этой проблемы при доступе к localhost с помощью HttpClient? Как это можно исправить?

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(); 
+0

Что происходит, если вы называете его «ожидающим client.GetStringAsync (url)»? –

ответ

4

Оказалось, что это не имеет ничего общего с библиотекой, поскольку в большинстве случаев запросы, связанные с локальным хостом, чаще всего не выполняются. Это может быть проблема с системой, когда дело доходит до локального хоста. В любом случае я отключил IPv6, и он все еще не работает.

Однако работа была необработанной. Я понял, что когда я запускал rawCap для мониторинга 127.0.0.1, все вызовы проходили успешно. Кажется, что это исправило проблему. Надеюсь, это поможет кому-то, у кого также была такая же проблема с localhost.

+0

У меня есть такая же проблема (см. [Здесь] (http://stackoverflow.com/questions/27394068/web-request-fails-but-only-for-localhost-and -when-using-system-net-httpwebreque)), и в самом деле rawCap немного помог, но он все еще очень медленный - гораздо медленнее, чем выдача запроса от другого клиента. Любая идея, что происходит под капотом? –

0

Просто подумайте ... Откройте окно Lan Settings и снимите флажок «Автоматически определять настройки». В последнее время я столкнулся с аналогичной ситуацией, и проблема была решена путем изменения этой настройки.

+0

Да. Я прочитал это с предыдущего поста и попробовал. То же самое. Я загрузил curl, и я получаю подобное поведение, поэтому я начинаю подозревать, что это связано с какой-то испорченной конфигурацией. Curl на самом деле время от времени большую часть времени, и я понял, что в те времена запрос даже не дошел до URL-адреса. – ritcoder

+0

Я вижу. Попытайтесь использовать как отладочную, так и выпускную конфигурации, на всякий случай. – DrinkBird

+0

Я тестирую приложение, используя Linqpad, поэтому не знаю, как это сделать. Попробуем перезапустить, чтобы увидеть, если он делает differene. – ritcoder

Смежные вопросы