1

長い間私を悩ませている質問があります。

Windows Phone 8 と c# を使用しています。

Webからファイルをダウンロードしているときに、時々この例外が発生します。

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);

この例外がポップアップし続け、解決できなかったため、アドバイスをいただければ幸いです。

4

2 に答える 2

1

リモートサーバーが見つからないとは言いませんが、その時点でそのリモートサーバーに存在していなかったため、サーバーは要求されたファイルに応答しませんでした。正確なシナリオを知るのは難しいですが、ネットワークの問題は別として、その時点ではファイルが存在しないのと同じくらい単純なものである可能性があります。

このファイルはどのくらいの頻度で更新されますか?ファイルをリクエストした時点で、ファイルが削除されて一時的に書き換えられる可能性を考えてみてください。

Webは本質的に信頼できるものではなく、信頼できるように見えるように作られているだけです。これには多くの手法がありますが、私が言っているのは、あなたの場合、一定期間後に障害が発生したときに再試行する「回復」ロジックの方が悪い場合があるということです。

ただの可能性。

于 2013-03-05T11:34:26.067 に答える
0

電話がエミュレーターで実行されていることを忘れて、web 参照を localhost に変更すると、これが発生します。localhost は電話自体で解釈され、明らかに Web サービスは電話で実行されていません。ローカル デバッグを行う場合は、ローカルホストや 127.0.0.1 ではなく、マシンの IP アドレスを使用してください。

于 2013-08-01T18:59:26.157 に答える