Медленный WebClient.DownloadString? - PullRequest
3 голосов
/ 06 марта 2012

Я работаю над веб-приложением, которое работает с ASP.Net 3.5

. Где-то в приложении я выполняю вызовы во внешнюю систему.Этот вызов заключается в загрузке строки с определенного URL:

string targetUrl = BuildMyUrl();
WebClient wc = new WebClient();
string data = wc.DownloadString(targetUrl);

. Этот код довольно хорошо работает с приемлемым временем ответа (менее 500 мс).

Однако в определенных случаях это время ответаболее 15 секунд.Я могу воспроизвести это поведение и ясно видеть, сколько времени находится на вызове DownloadString.

Я не понимаю, почему это происходит в моем сценарии .

Вы скажете: «Эй, это целевая система, которая работает медленно».Но я не смог воспроизвести поведение вне моего приложения (я создал небольшое консольное приложение, которое изолирует неисправный код. Никогда не возникало проблем).

Я не знаю, где искать сейчаспонять проблему.Что может привести к тому, что данные простой загрузки будут слишком длинными?

К вашему сведению: целевой системой является служба аутентификации.Целевой URL имеет вид:

http S : // mysystem / validate? Ticket = XXXYYY

Возможно, проблема в протоколе https.

Может ли использование класса WebClient под IIS изменить поведение WebClient?

[Редактировать] Я пытался:

  • Чтобы явно установить Proxy свойство объекта WebClient равно нулю
  • Я заменил вызов DownloadData следующим кодом:

    var req = (HttpWebRequest) WebRequest.CreateDefault (new Uri (targetUrl));using (var response = (HttpWebResponse) req.GetResponse ()) {using (var sr = новый StreamReader (response.GetResponseStream ())) {data = sr.ReadToEnd ();}}

Ни один из этих тестов не был успешным.

Ответы [ 2 ]

0 голосов
/ 16 мая 2012

Задержка произошла из-за тайм-аута проверки сертификата.Один из эмитентов в цепочке был неправильно развернут на клиентском сервере.

0 голосов
/ 16 мая 2012

Попробуйте использовать Fiddler или какой-либо встроенный сетевой анализатор в браузерах Chrome / FF для просмотра запросов / ответов HTTPS и их заголовков.

...