ASP.NETで作ったWEBアプリケーションで次のようなエラーが多発しています。
HttpExceptionはユーザーコードによってハンドルされませんでした。
リモートホストは接続を終了しました。エラーコードは、0x800704CDです。(The remote host closed the connection. The error code is 0x800704CD)
リモートホストは接続を終了しました。エラーコードは、0x80070057です。(The remote host closed the connection. The error code is 0x80070057)
クライアントが接続されました。(System.Web.HttpException: The client disconnected.)
ほぼ、同様な不具合は以下の記事にも書きました。
この時は、修正方法が分からなかったのですが、なんとなく対策を立ててみました。
「リモートホストは接続を終了しました。」エラーが発生するタイミングと解決方法
ファイルをWEBベースでサーバーからダウンロードするアプリケーションで、ユーザーがダウンロードをキャンセルすると発生します。
よくよく考えてみたのですが、ダウンロードの途中で、ストリームが切断されたから「切断されました」ってExceptionが出るわけでプログラムの動きとしては正常なんでしょうね。
そこで、Exceptionを拾って、returnすることにしました。
コードは次の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
try { … … }catch (HttpException ex) { if (ex.Message.StartsWith("クライアントが切断されました") || (ex.Message.StartsWith("種類 'System.Web.HttpUnhandledException' の例外がスローされました。")) ) { return ;//do nothing } else { //handle other errors } } |
少し気持ち悪い解決策ですが、ほぼ問題なくなったのでこれで様子を見ることにします。
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント
[…] リモートホストは接続を終了しました。エラーコードは、0x80070057です。(Th… […]