2010-11-05 2 views
4

Я создаю приложение wp7. Я использую WebClient для захвата данных с сервера. Раньше он работал, хотя внезапно это провалилось.Сбой WebClient с удаленным сервером «NotFound»

static void downloadData(string uri, Action<object, DownloadStringCompletedEventArgs> onComplete) 
    { 
     Debug.WriteLine("Downloading: " + uri); 
     WebClient data = new WebClient(); 
     data.DownloadStringCompleted += new DownloadStringCompletedEventHandler(onComplete); 
     data.DownloadStringAsync(new Uri(uri)); 
    } 

    static void data_SectionDownloadCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     if (e.Error != null) 
     { 
      // throws NotFound 
      throw e.Error; 
     } 

     // ... 
    } 

Когда я перехожу на URI в мой браузер, он отлично работает.

Исключение:

"The remote server returned an error: NotFound." {System.Net.WebException} 

Что я здесь делаю неправильно?

Обновление: Я перезапустил эмулятор, и теперь он отлично работает. Weird. Может быть, это проблема в эмуляторе? Надеюсь, я не смогу воспроизвести его на самом устройстве.

+0

я начал получать это с большим двоичными файлами на моем Azure эмулятора хранения. Я убедился, что я устанавливаю контейнер как «общедоступный», но я продолжаю получать ошибки WebClient NotFound. Я могу получить доступ к лазурному blob через интернет-проводник. – markti

ответ

0

У меня был аналогичный опыт с эмулятором. Я часто открываю Internet Explorer и просматриваю сайт, прежде чем тестировать любое приложение, использующее сеть. Кроме того, лучше не изменять IP-адрес машины, на которой запущен эмулятор, DHCP или вручную. Наконец, я предлагаю вам обрабатывать любые сценарии ошибок с сообщением об ошибке, отображаемым в MessageBox.

НТН, indyfromoz

0

Я получаю это occassionaly тоже. Даже на реальных устройствах. Однако повторная попытка его исправляет.

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

1

NotFound - общая ошибка, которая в основном означает «Ошибка». За ним есть реальное исключение, которое нужно найти, чтобы найти. Самый простой способ, который я нашел, - Intellitrace, который позволяет просматривать все исключения, которые когда-либо случались на вашем веб-сервере. Если вы посмотрите прямо перед своим NotFound, вы найдете реальное исключение, которое поддерживает его.

Если Intellitrace не является опцией, добавьте больше/лучшее ведение журнала на вашем сервере и клиенте. Google имеет много советов, хороший пример глубокого отладки:

http://www.mostlydevelopers.com/blog/post/2009/01/14/debugging-tips-ndash3b-the-remote-server-returned-an-error-notfound.aspx

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