Я использую веб-сервер 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, но в этом случае вероятность того, что вы используете большое число, значительно ниже.
Следующие две ссылки помогли решить мою проблему.
http://www.beansoftware.com/ASP.NET-Tutorials/Custom-Error-Pages.aspx