ファイルと HTML フォーム情報をリモート サーバーにポストし、XML サーバーの応答をデータベースに格納する C# Windows サービス (.NET Framework 3.5、C# 3.0) を作成しました。関連するコードの主なチャンクは次のとおりです。
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.
request.GetResponse()を呼び出してから 7 分後にエラーが発生します。誰が接続をシャットダウンしたかを特定する方法はありますか? この問題を解決するために、他に試してみるべきことはありますか? 前もって感謝します!