HttpWebRequest.GetResponse: «Базовое соединение было закрыто: при получении произошла непредвиденная ошибка» - PullRequest
3 голосов
/ 07 июля 2010

Я написал службу C # для Windows (.NET Framework 3.5, C # 3.0), которая отправляет файлы и информацию HTML-форм на удаленный сервер, а затем сохраняет ответ сервера XML в базе данных.Вот основная часть соответствующего кода:

    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;

Мой сервис работает правильно для всех небольших файлов, но я получаю следующую ошибку при попытке отправить файлы большего размера (8-9 МБ).

    The underlying connection was closed: An unexpected error occurred on a receive.

Я посмотрел исходящий запрос, используя Fiddler, и смог получить следующую информацию:

    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.

Ошибка происходит через 7 минут после вызова request.GetResponse ().Есть ли способ определить, кто отключил соединение?И есть ли что-то еще, что я должен попробовать на моем конце, чтобы решить эту проблему?Заранее спасибо!

1 Ответ

2 голосов
/ 07 июля 2010

Поскольку вы упомянули, что он работает с небольшими файлами, но не с большими, я бы посоветовал проверить максимальный размер загружаемого файла на сервер. Я считаю, что по умолчанию 4 МБ. http://support.microsoft.com/kb/295626

РЕДАКТИРОВАТЬ: заметил, что ссылка выше несколько устарела. Вот один для iis7: http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/

...