Данная статья посвящена обходу некоторых проблем работы с 1С при опубликовании на сервере IIS. Основная проблема ресурсов, опубликованных в «широкий» доступ, это DDoS атаки, причем в 90% случаев это атака не на Вас и даже не с конкретной целью остановить/навредить вашему бизнесу, а просто ради забавы: нашли дырку – давайте завалим. Естественно, с другой стороны, админы и ПО серверов борются и довольно успешно с этой проблемой, ограничивая функциональность/размеры запросов и т.п. Очень часто такие ограничения делают неработоспособными «внешние источники» данных, например, 1С. И вот на одном из проектов мы столкнулись с такой проблемой. На сервере IIS опубликовали базу, все работает, кроме работы с файлами. Вызов любой формы, содержащей файл, вываливается в ошибку: «Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Web.HttpException: A potentially dangerous Request.Path value was detected from the client (:). Stack Trace: [HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (:).] Ошибка четко говорит, что проблема в настройках безопасности сервера IIS. Админы перестраховываются, т.к. на этом сервере не только 1С, снижать параметры безопасности всего сервера нельзя, но мы можем снизить критерии конкретно для своего узла. Для того, чтобы обойти общие настройки безопасности, необходимо отредактировать файл публикации «web.config», который находится в каталоге с вашей публикацией, а именно: 1. Добавить параметр в раздел system.webServer: <security> <requestFiltering allowDoubleEscaping=”true” /> </security> 2. Добавить параметр в раздел configuration <system.web> <pages validateRequest=»false» /> <httpRuntime requestPathInvalidCharacters=”” /> </system.web> и перезапустить IIS. Функциональность будет полная. Обратите внимание, что если вы переопубликуете базу, изменения нужно будет вносить заново. |
||
Александр Логачев, руководитель отдела разработки ООО “Кодерлайн |