Загрузка файла и странная ошибка браузера - PullRequest
0 голосов
/ 26 июля 2010

У меня есть веб-сайт .NET 3.5, который загружает файлы в файловый поток SQL Server 2008.Все это прекрасно работает, пока я не достигну определенного размера файла, и я неожиданно получаю странные сообщения об ошибках в браузере.

В IE 7, если я загружаю файл размером около 100 мегабайт, браузер возвращается примерно через 2 минуты с ошибкой, говорящей «Internet Explorer не может отобразить веб-страницу».Совершенно общая и совершенно бесполезная ошибка.Если бы это была проблема тайм-аута, то я ожидал бы увидеть ошибку с чуть более подробным объяснением.

В Firefox 3.6.7, при загрузке того же файла браузер возвращается примерно через 4 минуты с таким же общим и бесполезнымошибка с сообщением "Соединение было сброшено".Опять же, если бы это была ошибка тайм-аута (например, где-то в моем коде у меня истекло время ожидания соединения), я бы, по крайней мере, ожидал, что Firefox вернется через 2 минуты с общей ошибкой, потому что IE возвратился через 2 минуты.

Мне нужны некоторые идеи о том, как диагностировать это и, надеюсь, отследить, что является причиной проблемы.

Кроме того, размер загружаемого файла ограничен 1 гигабайтом в файле web.config.

<!-- 1 Gig upload -->
<httpRuntime maxRequestLength="1048576" />

РЕДАКТИРОВАТЬ:

Существуют ли какие-либо настройки в IIS 7, которые могутповлиять на это?Я не гуру IIS, поэтому я неправильно настроил свой веб-сайт.

Ответы [ 2 ]

0 голосов
/ 27 июля 2010

Ответ:

MSDN requestLimits

В web.config есть раздел для тонкой настройки сайтов, работающих под IIS 7. Я удивительно не осведомлен о IIS 7, поэтому неудивительно, что я столкнулся с этой проблемой.

<security>
  <requestFiltering>
    <!-- 2 gig max upload --> 
    <requestLimits maxAllowedContentLength="2147483648"></requestLimits>
  </requestFiltering>
</security>

Значение по умолчанию для maxAllowedContentLength составляет 30000000 байт. Немного посчитаем, и вы обнаружите, что 30000000 байт равняется 29 296 875 КБ, что объясняет, почему я мог загрузить файл с 29 174 КБ, а не один с 29 308 КБ.

Как только я поднял это значение, загрузка моего файла сработала для больших PDF.

0 голосов
/ 26 июля 2010

Джагд,

Попробуйте изменить ваш веб-конфиг с помощью:

<system.web>
  <httpRuntime executionTimeout="999999" maxRequestLength="51200" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...