HttpWebRequest.GetResponse: « La connexion sous-jacente a été fermée: Une erreur inattendue est survenue sur une réception. »
-
02-10-2019 - |
Question
J'ai écrit un service Windows C # (.NET Framework 3.5, C # 3.0) que les fichiers messages et informations de formulaire HTML à un serveur distant, puis stocke la réponse du serveur XML dans une base de données. Voici le morceau principal code pertinent:
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;
Mon service fonctionne correctement pour tous les petits fichiers, mais je reçois l'erreur suivante lorsque je tente d'envoyer des fichiers plus volumineux (8-9 Mo).
The underlying connection was closed: An unexpected error occurred on a receive.
Je regarde la demande sortante à l'aide Fiddler, et a pu glaner les informations suivantes:
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.
L'échec se produit ~ 7 minutes après l'appel I request.GetResponse () . Est-il possible d'identifier qui a fermé la connexion? Et est-il autre chose que je devrais essayer sur ma fin pour résoudre ce problème? Merci à l'avance!
La solution
Puisque vous le dites de travail pour les petits fichiers, mais pas plus, je vous suggère de vérifier la taille de téléchargement de fichiers max sur le serveur. Je crois que la valeur par défaut est 4MB. http://support.microsoft.com/kb/295626
EDIT: Remarqué le lien ci-dessus est un peu obsolète. Voici un pour IIS7: http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/