Работа с 1С через веб-сервер Microsoft IIS (Internet Information Services) является стандартом для многих организаций, использующих тонкий или веб-клиент. Однако системные администраторы часто сталкиваются с ситуацией, когда после авторизации программа «падает» или выдает неопределенную ошибку при открытии отчетов, списков или документов. Рассмотрим причины возникновения этой проблемы и разберем по шагам проверенные методы её решения.
Прежде чем приступать к «кручению» настроек, проанализируем ситуацию. По умолчанию IIS скрывает детальную информацию об ошибках из соображений безопасности. Чтобы понять, что именно происходит «под капотом», нам необходимо изменить конфигурацию публикации. Выясним причину через файл web.config, который находится в папке с опубликованной базой (например, C:\inetpub\wwwroot\trade).
Найдем в файле секцию system.web и добавим (или изменим) тег customErrors. Это позволит нам увидеть полный текст ошибки в браузере непосредственно на сервере:
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
После этого при возникновении сбоя система выдаст подробное описание, которое часто указывает на проблемы с модулем IsapiModule или ошибки доступа.
Наиболее эффективным решением, которое помогло большинству пользователей, является изменение режима работы пула приложений. В современных версиях IIS по умолчанию используется «Интегрированный режим» (Integrated Pipeline), в котором IIS обрабатывает все запросы через стек .NET. Однако расширение 1С (файл wsapidxx.dll) спроектировано как классический ISAPI-модуль.
Разберем алгоритм действий:
DefaultAppPool или пул с именем базы).Integrated на Classic.Этот шаг заставляет веб-сервер работать с 1С напрямую, минуя часть конвейера .NET, что устраняет конфликты при передаче заголовков и управлении сессиями.
В некоторых случаях ошибка возникает из-за несовместимости версий .NET Framework, на которых работает пул приложений. Проанализируем настройки среды:
v4.0 на v2.0 (или наоборот, в зависимости от версии вашей платформы 1С и операционной системы).Ситуация, когда 1С «вылетает» именно на тяжелых операциях (отчеты, динамические списки), часто связана с недостатком прав на запись временных файлов. Проанализируем права доступа для учетных записей, под которыми работает веб-сервер.
Важные моменты по правам:
IUSR и IIS_IUSRS должны иметь права «Чтение и выполнение» на каталог bin установленной платформы 1С (например, C:\Program Files\1cv8\8.3.x.xxxx\bin).default.vrd и web.config).C:\Windows\Temp.Особо отметим ситуацию, когда сервер 1С или IIS установлен на Контроллере Домена (DC). На контроллерах домена действуют жесткие политики безопасности. Локальные учетные записи пулов приложений могут не иметь прав на «Запуск в качестве пакетного задания». В таком случае рекомендуется либо вынести веб-сервер на отдельную машину, либо вручную настроить разрешения в Local Security Policy (Локальная политика безопасности).
Если вы используете 64-битную операционную систему, но установили 32-битную платформу 1С (или наоборот), возникнет конфликт разрядности рабочих процессов. Рассмотрим настройки разрядности в IIS:
True. Если 64-битная — обязательно False.Если вы по каким-то причинам не можете перейти в классический режим, попробуем «успокоить» IIS в интегрированном режиме. Для этого внесем изменения в web.config, добавив параметр валидации:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
Это позволит серверу игнорировать некоторые несоответствия в конфигурации модулей, которые часто становятся причиной ошибки 500.24 или 500.21.
Посмотрим на ситуацию шире: иногда проблема кроется в сетевых протоколах. Если ошибка сохраняется при использовании HTTPS, попробуйте проверить работоспособность через HTTP. Также, если в системе недавно обновлялся .NET Framework, полезно выполнить очистку кэша временных файлов ASP.NET по адресу:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
Проанализировав все вышеперечисленные шаги, мы можем сделать вывод, что наиболее стабильным сочетанием для публикации 1С на IIS является использование Classic Mode пула приложений и корректная настройка прав доступа для группы IIS_IUSRS к исполняемым файлам платформы.