HttpWebRequest.GetResponse: “La connessione sottostante chiusa: si è verificato un errore imprevisto in una ricezione.”

StackOverflow https://stackoverflow.com/questions/3197010

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!

È stato utile?

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/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top