Ошибка при чтении данных с использованием WebClient - PullRequest
0 голосов
/ 03 сентября 2010

В нашем приложении мы используем Silverlight на стороне клиента. Он загружает данные с сервера с помощью WebClient:

WebClient wcGetDataFundSet = new WebClient();
wcGetDataFundSet.OpenReadCompleted += (s, e2) =>
{
    // Do something with the data.
};
wcGetDataFundSet.OpenReadAsync(new Uri(this.uriString));

Когда я открываю this.uriString в браузере, отображается правильный результат. На машине другого разработчика все работает просто отлично. По моему делегат даже не стреляет. Пробовал использовать "http://google.com/index.html" и некоторые другие URL. Это работало, но e2.Result выдал исключение типа 'System.Reflection.TargetInvocationException'. Затем я изменил код на это, и это сработало:

WebClient wcGetDataFundSet = new WebClient();
wcGetDataFundSet.DownloadStringCompleted += (s, e2) =>
{
    // Do something with the data.
};
wcGetDataFundSet.DownloadStringAsync(new Uri(this.uriString));

Windows XP SP3, Visual Studio 2010 и IE 8 на каждой машине. У вас есть идеи, где проблема была? Заранее спасибо.

1 Ответ

0 голосов
/ 28 марта 2013

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

Мое решение было

DownloadDataAsync

вместо openReadAsync.Соответствующие события

DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)

DownloadDataCompleted(object sender, DownloadDataCompleteEventArgs e)

Я получил это исключение только при попытке преобразовать результат в строку при ошибке (забыл return после обработки e.Error).

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