System.Net.WebClient.UploadFile を使用して Web サーバーにファイルをアップロードしようとしていますが、WebException が引き続き発生します。具体的には、3 つのエラーが発生しています。同じエラーが発生しない理由はわかりませんが、オンラインで見つけたものに基づいて、それらはすべて関連しているようです。
- リクエストは中止されました: リクエストはキャンセルされました。
- 接続が閉じられました。再試行。
- 既存の接続がリモート ホストによって強制的に閉じられました。
ややランダムに見えます(常に同じファイル、時間、または私が把握できる他のパターンとは限りません)。また、これは私の職場のネットワークでは発生しません (アップロードに 2 秒もかかりません) が、自宅から DSL 経由で発生します (アップロードには約 2 分かかります)。
私がオンラインで見つけたものから、これらのエラーはキープアライブと関係があります。残念ながら、WebClient はこれらをオフにする方法を提供していません (これはパフォーマンス機能であるため、とにかくオフにするかどうかはわかりません)。
タイムアウトと関係があるのではないかと思いますが、理由がわかりません。サーバーは ASP.Net MVC で、タイムアウトは 1 時間に設定されています。
<httpRuntime
maxRequestLength="10024"
executionTimeout="3600"
/><!-- 10024 = 10MB, 3600 = 1hr -->
私はこの問題を解決する両方の方法に興味があり、それが起こらないようにする方法と、回復技術 (単にリクエストを再度行うだけでは効果がないようです) に興味があります。
これは、サーバーに写真をアップロードする WinForms アプリケーション用です。サーバーは ASP.Net MVC アプリケーションです。クライアントは長い間正常に動作していましたが、ASP.Net MVC に切り替えてから失敗しています (従来の ASP と SA FileUp を使用していました)。クライアント側は、新しい URL に対応するために変更されただけで、それ以外はほとんど同じです。