Назад | Перейти на главную страницу

Обнаружена ошибка типа "запрос слишком большой"

Я использую веб-сервер IIS 8.0 и использую ASP.NET и C #.

У меня есть окно загрузки, в котором пользователь может загрузить файл на сервер, и после ограничения около 50 МБ на белой странице появляется сообщение:

The page was not displayed because the request entity is too large.

Я хотел бы отобразить более удобную страницу с уведомлением красного цвета, в котором говорится: «Ошибка при попытке загрузить файл, свяжитесь с нами для получения помощи».

В моем файле программной части при обработке события нажатия кнопки загрузки я добавил:

try
{
    //try to save the file to server
}
catch(Exception ex)
{
    //otherwise, set the asp:Label tag text to display error
}

Однако код в catch заявление не выполняется. Я предполагаю, что ошибка может быть связана с IIS и не может быть обнаружена с помощью этого оператора кода. Есть ли способ перехватить эту ошибку и вместо этого отобразить более удобную страницу ошибки?

Спасибо за помощь.

Если загруженный файл больше, чем разрешено IIS, он никогда не попадет в среду выполнения ASP.NET, и ваша обработка исключений будет бесполезной.

Вы должны установить для uploadReadAheadSize значение намного больше, чем вы хотите разрешить, в идеале только для определенного URL-адреса. А затем проверьте размер загрузки в вашем коде и отобразите собственное сообщение.

Если пользователь загружает огромный файл размером больше, чем uploadReadAheadSize, он / она все равно получает сообщение IIS, но в этом случае вероятность того, что вы используете большое число, значительно ниже.