Сбой WebClient с удаленным сервером "NotFound" - PullRequest
4 голосов
/ 05 ноября 2010

Я создаю приложение wp7.Я использую WebClient для получения данных с сервера.В прошлом это работало, хотя внезапно это терпело неудачу.

    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.Может быть, проблема в эмуляторе?Надеюсь, я не смогу воспроизвести его на реальном устройстве.

Ответы [ 3 ]

1 голос
/ 10 июля 2012

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

0 голосов
/ 08 ноября 2010

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

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

0 голосов
/ 05 ноября 2010

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

HTH, индифромоз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...