httpwebrequest.getResponse:「基礎となる接続が閉じられました。受信時に予期しないエラーが発生しました。」
-
02-10-2019 - |
質問
ファイルとHTMLフォーム情報をリモートサーバーに投稿するC#Windowsサービス(.NETフレームワーク3.5、C#3.0)を作成し、XMLサーバーの応答をデータベースに保存します。関連するコードの主なチャンクは次のとおりです。
HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
request.KeepAlive = false;
request.Timeout = 600000;
request.ReadWriteTimeout = 600000;
request.Method = "POST";
request.ContentType = contentType;
request.UserAgent = userAgent;
request.CookieContainer = new CookieContainer();
request.ContentLength = formData.Length;
using (Stream requestStream = request.GetRequestStream())
{
// Push it out there
requestStream.Write(formData, 0, formData.Length);
requestStream.Close();
}
return request.GetResponse() as HttpWebResponse;
私のサービスはすべての小さなファイルに対して適切に機能しますが、大きなファイル(8〜9 MB)を送信しようとすると、次のエラーが発生します。
The underlying connection was closed: An unexpected error occurred on a receive.
Fiddlerを使用して発信リクエストを見て、次の情報を収集することができました。
HTTP/1.1 504 Fiddler - Receive Failure
Content-Type: text/html
Connection: close
Timestamp: 12:25:04.067
ReadResponse() failed: The server did not return a response for this request.
障害は、電話してから7分後に発生します request.getResponse(). 。誰が接続をシャットダウンしたかを特定する方法はありますか?そして、この問題を解決するために私の最後に試してみるべきことはありますか?前もって感謝します!
解決
小さなファイルで動作するが大きくはないことに言及しているので、サーバー上の最大ファイルのアップロードサイズをチェックすることをお勧めします。デフォルトは4MBだと思います。 http://support.microsoft.com/kb/295626
編集:上記のリンクがやや時代遅れであることに気付きました。これがIIS7の1つです: http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/
所属していません StackOverflow