Ошибка 403 при отправке большого файла с помощью asp-запроса в службах IIS

Эта статья поможет устранить проблему, возникающую при использовании запроса active Server Pages для отправки большого файла на компьютер, на котором установлены службы IIS 8.0 или более поздней версии.

Оригинальная версия продукта: службы IIS
Исходный номер базы знаний: 327659

Симптомы

Важно!

Эта статья содержит сведения об изменении метабазы. Перед изменением метабазы убедитесь, что у вас есть резервная копия, которую можно восстановить при возникновении проблемы. Сведения о том, как это сделать, см. в разделе Справка по настройке резервного копирования и восстановления в консоли управления Майкрософт (MMC).

При использовании запроса ASP для отправки большого файла на компьютер, на котором установлены службы IIS 8.0 или более поздней версии, отправка может завершиться ошибкой. Вы также можете получить ответ 403 об ошибке или сообщение об ошибке, похожее на одно из следующих:

  • Сообщение об ошибке 1

    Ошибка объекта запроса "ASP 0104 : 80004005" Операция не разрешена

  • Сообщение об ошибке 2

    007~ASP 0104~Операция не разрешена

  • При публикации большого количества данных формы на страницу ASP может появиться сообщение об ошибке, похожее на следующее:

    Произошло исключение "80020009"

Кроме того, отправка файла может завершиться ошибкой Response.binaryWrite при использовании метода .

У вас возникает один или несколько из этих симптомов, даже если в более ранних версиях IIS была выполнена одна и та же отправка файлов.

Причина

Эта проблема возникает, если Content-Length присутствует заголовок и указывает Content-Length объем данных, превышающий AspMaxRequestEntityAllowed значение свойства в метабазе IIS. Значение по умолчанию для AspMaxRequestEntityAllowed свойства — 204 800 байт.

Примечание.

Это свойство метабазы было впервые включено в накопительное обновление за октябрь 2002 г. для IIS. Это свойство метабазы входит в установку iis 8.0 или более поздних версий по умолчанию.

Решение

Предупреждение

Если изменить метабазу неправильно, могут возникнуть серьезные проблемы, которые могут потребовать переустановки любого продукта, использующего метабазу. Корпорация Майкрософт не может гарантировать, что проблемы, возникающие при неправильном изменении метабазы, могут быть решены. Измените метабазу на свой страх и риск.

Примечание.

Перед изменением всегда создайте резервную копию метабазы.

Чтобы устранить эту проблему, измените значение в свойстве AspMaxRequestEntityAllowed , чтобы задать максимальное число байтов, разрешенных в тексте сущности запроса ASP. Для этого выполните следующие действия:

  1. В командной строке введите cd drive :\inetpub\adminscriptsи нажмите клавишу ВВОД.

    Примечание.

    В этой команде для изменения папок диск является заполнителем для жесткого диска, на котором установлены службы IIS.

  2. В командной строке введите команду cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed sizeи нажмите клавишу ВВОД.

    Примечание.

    В этой команде размер — это заполнитель для отправки файла с наибольшим размером, который вы хотите разрешить. Максимальное значение — 1 073 741 824 байта. Задайте для этого значения наименьшее возможное значение, которое позволяет использовать нужные функции.

  3. В командной строке введите команду iisresetи нажмите клавишу ВВОД.

Дополнительная информация

Свойство AspMaxRequestEntityAllowed указывает максимальное количество байтов, разрешенных в тексте сущности запроса ASP. Content-Length Если заголовок присутствует, а Content-Length заголовок указывает объем данных, превышающий AspMaxRequestEntityAllowed значение свойства, IIS возвращает ответ на ошибку 403. Свойство AspMaxRequestEntityAllowed применяется только к запросам PUT и к запросам POST . Свойство AspMaxRequestEntityAllowed не применяется к запросам GET . Так как это свойство метабазы применяется только к ASP, другие расширения API internet server (ISAPI) не затрагиваются.

Свойство AspMaxRequestEntityAllowed связано в функции со свойством MaxRequestEntityAllowed . AspMaxRequestEntityAllowed Однако свойство зависит от запросов ASP. Для свойства можно задать MaxRequestEntityAllowed значение 1 мегабайт (МБ) на уровне службы веб-публикации (WWW Service). Затем можно задать AspMaxRequestEntityAllowed для свойства меньшее значение, если известно, что определенные приложения ASP обрабатывают меньший объем данных.