Обновление: я пробовал HttpWebRequest, и он также демонстрирует то же поведение.
Я пытаюсь использовать WebClient DownloadStringAsync для извлечения некоторых (очень маленьких) данных из надстройки Outlook (VSTO / .Net 4.0). Это займет около 10-15 секунд, прежде чем он даже сделает запрос.
Используя возможности Google, я указал на тот факт, что он пытается подобрать настройки прокси-сервера, и что я должен установить для них значение NULL. Я пробовал оба в коде:
WebClient serviceRequest = new WebClient();
serviceRequest.Proxy = null;
и добавив файл App.config и поместив:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<defaultProxy enabled="false">
<proxy/>
<bypasslist/>
<module/>
</defaultProxy>
</system.net>
</configuration>
Я добавил файл через интерфейс «Новый элемент» (я не уверен, что его подняли и использовали).
Ни одно из этих решений не сработало. Есть ли вещи, которые я мог бы попробовать изменить.
Код, о котором идет речь, выглядит следующим образом:
class MyClient
{
string url = "http://192.168.1.99:4567/contact.json?token={0}&email={1}";
WebClient serviceRequest = new WebClient();
public void getContact(string email, DownloadStringCompletedEventHandler methodName)
{
Uri target = new Uri(String.Format(url, "1234", email));
serviceRequest.Proxy = null;
if(serviceRequest.IsBusy)
{
serviceRequest.CancelAsync(); // Changed our mind and switched email
}
serviceRequest.DownloadStringCompleted += methodName;
serviceRequest.DownloadStringAsync(target);
}
}