2009-10-01 1 views
0

Я разрабатываю небольшое веб-приложение в ASP.Net (версия 3.5), используя VS2008 и C# 3.0. Есть загрузка файла, и я хочу убедиться, что весь запрос не превышает 5 МБ.Как узнать, что текущий запрос превышает maxRequestLength в ASP.Net?

Я настроил файл web.config и maxRequestLength установлен правильно.

Я переопределяю метод OnError страницы.

Однако при исследовании исключения я не вижу ничего, кроме строковых литералов и кодов ошибок, которые фактически идентифицируют ошибку «Максимальная длина запроса». Все, что у меня есть, это код ошибки (фактический HResult) и трассировка стека. Также обсуждается here.

Это немного проблема, поскольку реализация структуры может отличаться от ОС, отличной от моей: моей машиной разработки является Windows Server 2008, а целевой машиной может быть Windows 2000/2003/2008 Server.

Иными словами, существует ли переносной способ определения текущей ошибки как «Максимальная длина запроса превышена»?

ответ

0

Я думаю, вам придётся прибегнуть к решению на стороне клиента с помощью JavaScript или использовать элемент управления загрузкой Flash/Silverlight, который также может проверять размер файла/файлов клиентов.

Потому что, когда вы используете встроенный ASP.NET, очень сложно поймать это конкретное исключение. Однако, если это произойдет, вы можете показать дружественную страницу с ошибкой.

http://www.codeplex.com/SLFileUpload

+0

Это самый близкий ответ (следовательно, принят). Фактически, хотя это настройка web.config, именно IIS создает исключение. Вот почему мы должны использовать константы кодов ошибок и т. Д. Это очень запутанно. –