HttpWebRequest.GetResponse: „Die zugrunde liegende Verbindung wurde geschlossen: Ein unerwarteter Fehler ist aufgetreten auf einem zu erhalten.“
-
02-10-2019 - |
Frage
Ich habe einen C # Windows-Dienst (.NET Framework 3.5, C # 3.0) geschrieben, die Dateien und HTML-Formular Informationen an einen Remote-Server und speichern dann die XML-Server-Antwort in einer Datenbank. Hier ist das Haupt Batzen relevanten Code:
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;
Mein Service funktioniert für alle kleinen Dateien, aber ich bekomme die folgende Fehlermeldung, wenn ich versuche, größere Dateien zu senden (8-9 MB).
The underlying connection was closed: An unexpected error occurred on a receive.
Ich schaute auf der ausgehenden Anfrage mit Fiddler und konnte die folgenden Informationen abzulesen:
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.
Der Fehler tritt auf ca. 7 Minuten, nachdem ich Aufruf request.GetResponse () . Gibt es eine Möglichkeit zu erkennen, der die Verbindung geschlossen? Und gibt es etwas anderes soll ich an meinem Ende versuchen, dieses Problem zu lösen? Vielen Dank im Voraus!
Lösung
Da du es erwähnst für kleine Dateien zu arbeiten, aber nicht größer ist, würde ich vorschlagen, die maximale Dateigröße zum Hochladen auf den Server zu überprüfen. Ich glaube, dass der Standardwert ist 4 MB. http://support.microsoft.com/kb/295626
EDIT: Bemerkt den Link oben ist etwas veraltet. Ist hier ein für iis7: http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/