Я пытаюсь отладить приложение, которое делает WebRequest
синхронно, т.е.:
HttpWebRequest req = WebRequest.Create(new Uri("http://www.stackoverflow.com/")) as HttpWebRequest;
IAsyncResult res = req.BeginGetResponse(callback => { }, req);
while (!res.IsCompleted)
{
System.Threading.Thread.Sleep(100);
}
// Doesn't matter what's here, as `res.IsCompleted` never returns true
Это просто для проверки того, что часть логики приложения «правильная», но она застревает, когда IAsyncResult
никогда не сообщает о завершении.
Для проверки я попытался использовать Internet Explorer на эмуляторе, но обнаружил, что не может найти какие-либо веб-страницы (включая встроенные избранные), что наводит меня на мысль, что эмулятор пытается использовать определенный сетевой интерфейс на моем ноутбуке, но, похоже, нет способа его настроить или какой интерфейс использовать? У меня есть подозрение, что он может пытаться использовать интерфейс VPN или виртуальный адаптер, такой как для VirtualBox. Итак, как я могу настроить его? Кроме того, вы ожидаете, что запросы, сделанные эмулятором, будут отображаться в Fiddler?
Для записи NetworkInterface.GetIsNetworkAvailable()
возвращает true
;
ОБНОВЛЕНИЕ:
Похоже, что обновление моего графического драйвера (и связанная с этим перезагрузка) позволило эмулятору получить доступ к реальной сети (или, по крайней мере, угадать правильный адаптер); однако res.IsCompleted
по-прежнему не сообщает true (и Fiddler показывает, что запрос выполнен), поэтому я немного сбит с толку.