При публикации информационных баз 1С на веб-сервере Internet Information Services (IIS) системные администраторы часто сталкиваются с неприятной ситуацией: вместо привычного окна авторизации 1С браузер выдает ошибку HTTP 403.14 - Forbidden. В тексте ошибки сервер сообщает, что он настроен таким образом, чтобы не формировать список содержимого каталога. Рассмотрим детально, почему это происходит и как правильно решить проблему, не прибегая к потенциально небезопасным настройкам.
Для начала проанализируем ситуацию. Ошибка 403.14 возникает в тот момент, когда IIS получает запрос к определенному URL (адресу вашей базы), но не находит там "документа по умолчанию" и не имеет инструкций о том, какой программный модуль (обработчик) должен обработать этот запрос. В результате сервер полагает, что пользователь хочет просто посмотреть список файлов в папке, а так как просмотр каталогов по умолчанию запрещен в целях безопасности, он выдает 403.14.
Многие инструкции в интернете советуют зайти в диспетчер IIS и просто включить функцию "Просмотр каталога" (Directory Browsing). Разберем по шагам, к чему это приведет. Если мы активируем эту опцию, ошибка 403.14 исчезнет, но база 1С все равно не заработает. Вместо этого в окне браузера вы увидите список файлов, таких как default.vrd и web.config. Это подтверждает, что проблема заключается не в запрете просмотра папок, а в том, что веб-сервер "не подцепил" модуль расширения 1С, который должен исполнять файл публикации. Наша задача — заставить IIS правильно использовать библиотеку wsap32.dll или wsap64.dll.
Выясним наиболее частую причину: конфликт 32-битных и 64-битных компонентов. Если вы установили 64-разрядную платформу 1С:Предприятие, то и веб-сервер должен работать с ней в соответствующем режиме. Рассмотрим, как правильно настроить пулы приложений.
DefaultAppPool, но при публикации 1С часто создается отдельный пул).Важное правило: если вы используете 64-битную платформу 1С и библиотеку wsap64.dll, установите это значение в False. Если же у вас установлена 32-битная платформа, значение должно быть True. Несоответствие этого параметра разрядности установленной платформы — самая частая причина того, что обработчик 1С игнорируется сервером.
Проанализируем ситуацию (Публикатор 1С. Как публиковать базы с комфортом), когда все настройки кажутся верными, но система не работает. Часто проблема кроется в недостатке прав в момент самой публикации. Посмотрим на алгоритм правильной публикации:
При запуске от администратора 1С сможет корректно прописать необходимые параметры в системные файлы IIS и зарегистрировать модули расширения.
Иногда расширение веб-сервера 1С прописано в настройках сайта, но заблокировано на уровне всего сервера IIS. Выясним, как это проверить:
C:\Program Files\1cv8\8.3.XX.XXXX\bin\wsap64.dll).Разберем ситуацию с правами доступа к папкам. Веб-сервер работает от имени специального пользователя, и если у этого пользователя нет прав на чтение бинарных файлов 1С, база не запустится.
Нам необходимо предоставить права на "Чтение и выполнение" для группы IIS_IUSRS (или конкретного пользователя пула приложений) на следующие каталоги:
default.vrd).bin установленной платформы 1С (где лежат wsap32.dll или wsap64.dll). Обычно это C:\Program Files\1cv8\номер_версии\bin.Без доступа к папке bin веб-сервер просто не сможет физически прочитать библиотеку расширения, что опять же приведет к ошибке 403.14.
Проанализируем еще один важный момент: установлены ли необходимые компоненты в самой операционной системе. Для работы 1С через расширение веб-сервера недостаточно просто установить роль IIS. Рассмотрим, что должно быть включено:
Если эти компоненты отсутствуют, IIS не поймет, как обрабатывать запросы через DLL-библиотеки 1С.
Посмотрим на структуру файла web.config, который создается в папке публикации. Откройте его любым текстовым редактором (например, Notepad++). Секция обработчиков должна выглядеть примерно так:
<system.webServer>
<handlers>
<add name="1C Web-Service Handler"
path="*"
verb="*"
modules="IsapiModule"
scriptProcessor="C:\Program Files\1cv8\8.3.22.1709\bin\wsap64.dll"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
Проверьте параметр scriptProcessor. Он должен содержать актуальный и правильный путь к библиотеке 1С той разрядности, которую мы настроили в пуле приложений. Если путь ведет к несуществующей версии платформы (например, после обновления 1С), сервер выдаст ошибку доступа.
Как мы выяснили, ошибка 403.14 — это лишь симптом того, что IIS не смог запустить обработчик 1С. Вместо того чтобы включать просмотр каталогов, мы должны обеспечить корректную связку разрядности платформы, прав доступа к файлам и разрешений в настройках самого веб-сервера. Следуя этим шагам, вы сможете добиться стабильной работы веб-публикации без лишних "танцев с бубном".