HttpWebRequest.GetResponse: “la conexión subyacente se cerró: Se ha producido un error inesperado en un recibir”.
-
02-10-2019 - |
Pregunta
He escrito un servicio de Windows en C # (.NET Framework 3.5, C # 3.0) que publica archivos y la información de formulario HTML a un servidor remoto, y luego almacena la respuesta del servidor XML en una base de datos. Esta es la porción principal del código pertinente:
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;
Mi servicio funciona correctamente para todos los archivos pequeños, pero me da el siguiente error al intentar enviar archivos más grandes (8-9 MB).
The underlying connection was closed: An unexpected error occurred on a receive.
Me miró a la petición de salida usando violinista, y fue capaz de recoger la siguiente información:
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.
Se produce el fallo de ~ 7 minutos después de que la llamada request.GetResponse () . ¿Hay alguna manera de identificar quién cerró la conexión? Y es que hay algo más que debería probar en mi fin de resolver este problema? Gracias de antemano!
Solución
Ya que mencionas de trabajo para archivos pequeños, pero no más, me gustaría sugerir la comprobación del tamaño máximo de carga de archivos en el servidor. Creo que el defecto es de 4 MB. http://support.microsoft.com/kb/295626
EDIT: Notamos el enlace de arriba es un poco fuera de fecha. Aquí está uno para iis7: http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/