загрузка файла asp.net Соединение с сервером было сброшено во время загрузки страницы

Когда я пытаюсь загрузить файл размером 32 МБ, Firefox показывает следующую ошибку на странице.

«Соединение было сброшено. Соединение с сервером было сброшено во время загрузки страницы».

Я пробовал фолл. решения -

1 . in <system.web>

<httpRuntime maxRequestLength="2000000000" executionTimeout="999999"/>

2 . in <system.webserver>

 <security>
  <requestFiltering>
          <requestLimits maxAllowedContentLength="2000000000" />
  </requestFiltering>
 </security>

и

<compilation defaultLanguage="c#" debug="false" />

но все равно получаю ту же ошибку. Я думаю, проблема связана с «executionTimeout». Приложение не устанавливает этот тайм-аут для запроса.


person Abhi    schedule 18.12.2012    source источник
comment
Он отлично работает здесь, на localhost, но на сервере клиентов он не работает. У клиента установлен IIS 7.   -  person Abhi    schedule 18.12.2012
comment
Какой код ошибки вы получаете? 404.XX?   -  person Blachshma    schedule 18.12.2012
comment
@Blachshma: Я не могу сбросить настройки веб-сервера, сайт работает. :( И у меня нет доступа для этого. Благодарю за вашу помощь ...   -  person Abhi    schedule 18.12.2012
comment
Когда вы загружаете файл размером 25 МБ, это нормально?   -  person Blachshma    schedule 18.12.2012
comment
@Blachshma: файл размером 14 МБ успешно загружен.   -  person Abhi    schedule 18.12.2012


Ответы (3)


Наконец проблема решена ... Нам нужно сохранить оба тега в файле конфигурации. т.е.

<httpRuntime maxRequestLength="2000000000" executionTimeout="999999"/>

и

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="2000000000" />
    </requestFiltering>
</security>

На самом деле я комментировал одну строчку и тестировал другую. :)

person Abhi    schedule 19.12.2012

Во-первых: обратите внимание, что maxRequestLength находится в КБ, а maxAllowedContentLength - в байтах
Итак, вы просто разрешаете 1 МБ ... Увеличьте свой maxAllowedContentLength, например:

<requestLimits maxAllowedContentLength="2000000000" />

Во-вторых: попробуйте увеличить время выполнения, например executionTimeout="999999"

person Blachshma    schedule 18.12.2012
comment
maxRequestLength в КБ и 40960 КБ = 40 МБ. Я установил 1000000, то есть 976 МБ. Я пытался. По-прежнему возникает такая же ошибка. - person Abhi; 18.12.2012
comment
Давайте сделаем это еще проще, обновите вопрос, указав вашу ТЕКУЩУЮ конфигурацию, как system.web, так и system.webserver. - person Blachshma; 18.12.2012
comment
@Balchshma: Я тестировал в Internet Explorer и Chrome .. не работает. - person Abhi; 18.12.2012
comment
Вы УВЕРЕНЫ, что обновляете файл web.config, который находится в корневом каталоге вашего приложения?!? Кроме того, находится ли он в том же каталоге, в который вы пытаетесь загрузить файл? - person Blachshma; 18.12.2012
comment
Поскольку вы установили максимальные значения, все должно быть в порядке. И вы говорите, что уверены, что файл web.config находится в нужном месте. Боюсь, что без доступа к IIS и / или запуска iisrest я больше не смогу помочь .. - person Blachshma; 18.12.2012
comment
@Abhi Но еще один совет - если вы видите, что ограничение составляет ~ 30 МБ, то, поскольку IIS 7 по умолчанию ограничивает максимально допустимую длину содержимого для запроса до 30 МБ. Вероятно, это как-то связано с настройками на сервере IIS, которые не позволяют вам переопределить значение maxAllowedContentLength, и вам понадобится доступ к серверу. - person Blachshma; 18.12.2012

Я решил проблему и установил: <httpRuntime maxRequestLength="2097151" executionTimeout="999999"/> внутри тега в файле web.config.

если maxRequestLength="2000000000" не поддерживает, используйте диапазон 0-2097151

Надеюсь это поможет.

person Rashedul.Rubel    schedule 06.02.2013
comment
Если у вас есть IIS7, вам необходимо выполнить следующий код в файле конфигурации. ‹Security› ‹requestFiltering› ‹requestLimits maxAllowedContentLength = 2000000000 /› ‹/requestFiltering› ‹/security› - person Abhi; 08.02.2013