2011-02-05 6 views
0

Я использую WebClient загрузить текст с веб-страницы, как это:C# WebClient работает медленно в первый раз

WebClient wc = new WebClient(); 
string str = wc.DownloadString("http://blah"); 

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

Есть ли способ преодолеть эту проблему? Мне бы очень хотелось, чтобы он был быстрым все время, чтобы он не раздражал пользователя.

Я использую C# .NET 4.0, если это имеет значение.

+0

Является ли удаленным сайтом, который вы пытаетесь получить ASP.NET? –

+0

Я бы сделал некоторое профилирование производительности, чтобы увидеть, является ли это удаленной частью, которая занимает 5 секунд, пока она не ответит, или локальной части. –

+0

У меня такая же проблема, и мой удаленный сайт - это ASP.Net. Почему вы спрашиваете, это ASP.Net Дарин? –

ответ

0

следующее решение было принято из here

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

У вас есть несколько вариантов.

  1. Вы можете отключить автоматический прокси-сервер, перейдя в настройки IE и отключив опцию автоматического определения параметров прокси-сервера. Это меню Tools-> Internet Options-> Connections-> LAN Settings. Снимите флажок Автоматически определять настройки.

  2. Если вы можете определить статический прокси-сервер [trhat не меняет динамически свое имя], вы можете указать этот прокси-сервер WebProxy wp = new WebProxy (, ......);

WebClient.Proxy = wp;

+0

Спасибо, я знал, что есть аналогичная проблема, но я не мог найти ее нигде. Я действительно «исправил» проблему, выполнив дополнительный запрос на загрузку приложения, но это, очевидно, плохая идея. – david

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