在我们的应用程序中,我们在客户端使用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。
你对这个问题有什么想法吗?提前谢谢。
答案 0 :(得分:0)
我知道这个帖子很老了,问题可能会同时解决,但是我讨厌没有答案的线程......
我的解决方案是
DownloadDataAsync
而不是openReadAsync。相应的事件是
DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
DownloadDataCompleted(object sender, DownloadDataCompleteEventArgs e)
我在尝试将结果转换为错误字符串时遇到此异常(在处理return
后忘记e.Error
)。