При публикации информационной базы 1С:Предприятие на веб-сервере Internet Information Services (IIS) специалисты часто сталкиваются с ошибкой HTTP 500.0 - Internal Server Error. Особенно остро эта проблема проявляется при попытке настроить доступ через интерфейс OData для интеграции с внешними системами, такими как Power BI. Код ошибки 0x8007007f (в переводе с системного языка — «Процедура не найдена») сигнализирует о том, что модуль расширения веб-сервера 1С не может корректно инициализироваться из-за отсутствия необходимых зависимостей или неправильной конфигурации среды. Рассмотрим подробно, как решить эту проблему, пройдя путь от простых настроек до глубокой диагностики системы.
Ошибка возникает на этапе ExecuteRequestHandler при попытке обращения к модулю IsapiModule (обработчик 1C Web-service Extension). Когда веб-сервер получает запрос, он обращается к библиотеке wsisapi.dll. Если эта библиотека не может найти нужную функцию в системных компонентах Windows или если её разрядность не совпадает с разрядностью пула приложений, сервер выдает 500-ю ошибку. Основные причины включают:
Прежде всего, проверим, правильно ли настроен обработчик для работы с библиотекой wsisapi.dll. Выполним следующие действия:
1C Web-service Extension или ISAPI-dll. Если её нет, нажмем справа «Добавить сопоставление сценария».* (или конкретное расширение, если требуется).wsisapi.dll в папке bin установленной платформы 1С (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\wsisapi.dll).1C Web-service Extension.Ошибка 0x8007007f часто возникает, если 64-разрядный IIS пытается загрузить 32-разрядную библиотеку wsisapi.dll. Выясним, какая версия платформы 1С у нас установлена, и настроим пул приложений соответствующим образом.
Если вы используете 32-битную версию 1С (папка Program Files (x86)) на 64-битной ОС:
True.Если используется 64-битная версия 1С, убедитесь, что путь в сопоставлении обработчиков ведет в C:\Program Files\1cv8\..., а параметр «Разрешить 32-разрядные приложения» стоит в значении False.
Для корректной работы современных версий платформы 1С на старых операционных системах (например, Windows Server 2008 R2) требуется наличие определенных компонентов. Разберем, что именно нужно проверить:
KB2999226. Без него библиотека wsisapi.dll не сможет найти необходимые системные вызовы.Проанализируем права доступа. Пользователь, от имени которого работает веб-сервер (по умолчанию это IIS_IUSRS или учетная запись пула приложений IIS AppPool\ИмяПула), должен иметь доступ к нескольким директориям:
bin, где лежит wsisapi.dll.C:\inetpub\wwwroot\ИмяБазы).C:\Windows\Temp, так как 1С использует её для формирования временных файлов при обработке запросов.Посмотрим на содержимое файла default.vrd, который создается в папке публикации. Для работы OData (что важно для Power BI), файл должен содержать соответствующие разрешения. Рассмотрим пример структуры файла:
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/BaseName"
ib="Srvr="ServerName";Ref="BaseName";">
<standardOdata enable="true"
reuseSessions="autouse"
sessionMaxAge="20"
poolSize="10"
poolTimeout="5"/>
</point>
Обратите внимание на параметр enable="true" в секции standardOdata. Если вы планируете использовать анонимный доступ, убедитесь, что в базе 1С создан пользователь с соответствующими правами, а в настройках IIS включена анонимная проверка подлинности. Для проверки и формирования обращений к опубликованному сервису можно использовать генератор OData-запросов к платформе 1С.
Иногда расширение разрешено на уровне сайта, но заблокировано на уровне всего сервера. Проверим это:
wsisapi.dll.Резюме: Если после всех манипуляций на Windows Server 2008 R2 ошибка сохраняется, это может свидетельствовать о неразрешимом конфликте версий системных библиотек. В таких случаях наиболее эффективным решением (как показала практика обсуждения) является переход на более современную ОС, например Windows Server 2012 R2 или выше, где необходимые рантайм-библиотеки интегрированы более корректно.