我已经编写了一个C#的Windows服务(.NET Framework 3.5,C# 3.0),可以将文件和HTML表单信息发布到远程服务器,并将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.
在调用request.GetResponse()后约7分钟后发生故障。有没有办法确定是谁关闭了连接?此外,我应该尝试什么来解决这个问题?提前感谢!