使用WebClient读取数据的错误

时间:2010-09-03 15:21:16

标签: c# silverlight visual-studio-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”和其他一些网址。它工作正常,但是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 :(得分:0)

我知道这个帖子很老了,问题可能会同时解决,但是我讨厌没有答案的线程......

我的解决方案是

DownloadDataAsync

而不是openReadAsync。相应的事件是

DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)

DownloadDataCompleted(object sender, DownloadDataCompleteEventArgs e)

我在尝试将结果转换为错误字符串时遇到此异常(在处理return后忘记e.Error)。