使用WebRequest.BeginGetResponse的WebException

时间:2013-03-05 11:31:18

标签: c# windows-phone webrequest system.net.webexception

我有一个困扰我很长时间的问题。

我正在使用Windows Phone 8和c#。

我不时从​​网上下载文件时获得此Excpetion:

A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll
A first chance exception of type 'System.Net.WebException' occurred in System.Windows.ni.dll
A first chance exception of type 'System.Net.WebException' occurred in System.Windows.ni.dll
ExceptionMessage:The remote server returned an error: NotFound.

然后我再次运行程序,它运行正常。我不知道为什么有时候找不到远程服务器,问题真的与服务器有关吗? 它认为我的代码中有一些东西,我使用这些函数:

WebRequest request = WebRequest.Create("http...);
IAsyncResult res = request.BeginGetResponse(new AsyncCallback(DownloadComplete), null);

我会感激任何建议,因为这个例外不断出现,我无法解决。

2 个答案:

答案 0 :(得分:1)

它并没有说它找不到远程服务器,但是服务器拒绝了所请求的文件,因为当时该远程服务器上不存在。很难知道你的具体情况,但抛开网络问题,它可能就像文件不存在那样简单

此文件的更新频率是多少?想一想,在您请求文件时,它已被删除,并且会暂时被重写。

网络本身并不可靠,只是看起来很可靠;这里有很多技巧,但我要说的是,在你的情况下,在一段时间后失败时再次尝试可能会更糟糕的一些“恢复”逻辑。

只是一种可能性。

答案 1 :(得分:0)

当我忘记手机在模拟器中运行并将Web引用更改为localhost时,我得到了这个。然后将在手机上解释Localhost,显然网络服务没有在手机上运行。如果您正在进行本地调试,请确保使用机器的IP地址而不是localhost或127.0.0.1。