HttpWebRequest.GetResponse: “La connessione sottostante chiusa: si è verificato un errore imprevisto in una ricezione.”
-
02-10-2019 - |
Domanda
Ho scritto un servizio di Windows in C # (.NET Framework 3.5, C # 3.0) che pubblicano i file e le informazioni modulo HTML a un server remoto, e quindi memorizza la risposta del server XML in un database. Ecco il pezzo principale del codice 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;
Il mio servizio funziona correttamente per tutti i file di piccole dimensioni, ma ottengo il seguente errore quando provo ad inviare file più grandi (8-9 MB).
The underlying connection was closed: An unexpected error occurred on a receive.
Ho guardato la richiesta in uscita utilizzando Fiddler, ed è stato in grado di raccogliere le seguenti informazioni:
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'errore si verifica ~ 7 minuti dopo che io chiamo request.GetResponse () . C'è un modo di identificare chi spegnere la connessione? E c'è qualcos'altro che dovrei provare sulla mia estremità per risolvere questo problema? Grazie in anticipo!
Soluzione
Dal momento che si parla di essa a lavorare per file di piccole dimensioni, ma non più grande, suggerirei controllare la dimensione massima di caricamento file sul server. Credo che il valore di default è 4 MB. http://support.microsoft.com/kb/295626
EDIT: Ho notato che il link qui sopra è un po 'fuori moda. Ecco uno per IIS7: http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/