Расширения ISAPI в IIS для публикации 1С: установка, разрешение «Выполнение» и проверка
Содержание
Чтобы включить ISAPI DLL для 1С, нужно сделать три вещи: установить в Windows компонент IIS «Расширения ISAPI», опубликовать базу из Конфигуратора и в «Сопоставлениях обработчиков» IIS разрешить функцию «Выполнение» для библиотеки wsisapi.dll. Если хотя бы один шаг пропущен, браузер вместо базы покажет ошибку 404.3, 403 или 500.
Частое заблуждение — что ISAPI нужно «включать» в самой 1С. В программе такой галочки нет. Платформа лишь кладёт свой модуль веб-расширения wsisapi.dll в каталог bin, а разрешать его запуск и интеграцию с веб-сервером приходится на стороне IIS. Инструкция ниже — для платформы 8.3 и IIS 10 на Windows Server 2016 и новее или Windows 10/11.
Что такое ISAPI DLL и зачем она нужна 1С
ISAPI — программный интерфейс веб-сервера IIS. Через него IIS передаёт входящий HTTP-запрос внешней библиотеке и возвращает клиенту её ответ. У 1С такая библиотека называется wsisapi.dll и лежит рядом с исполняемыми файлами платформы, например в C:\Program Files\1cv8\8.3.25.1374\bin\.
Через этот модуль работает всё, что 1С отдаёт по HTTP:
- 🌐 веб-клиент — вход в базу из браузера без установки толстого или тонкого клиента ;
- 🔗 тонкий клиент по HTTP-подключению — удобно для удалённых офисов без VPN;
- 🧩 веб-сервисы SOAP (
/ws/) — обмен с сайтами, CRM, другими базами 1С; - 📡 HTTP-сервисы (
/hs/) — REST-интеграции, приём заказов, обработка вебхуков; - 📊 стандартный интерфейс OData (
/odata/) — выгрузка данных в BI-системы; - 📱 мобильные приложения и мобильный клиент 1С, которые синхронизируются через публикацию.
Без включённых расширений ISAPI IIS не знает, что делать с запросом к публикации, и отдаёт ошибку вместо данных.
Что подготовить до начала настройки
Перед настройкой проверьте пять условий. Каждое из них потом превращается в отдельную ошибку, если его пропустить.
| Что проверить | Где смотреть | Зачем |
|---|---|---|
| Права администратора Windows | Учётная запись, под которой работаете | Без них публикация не запишет файлы в C:\inetpub\wwwroot |
| Установлен компонент «Модули расширения веб-сервера» | Программы и компоненты → платформа 1С → Изменить | Без него в каталоге bin нет wsisapi.dll |
| Разрядность платформы | Путь установки: Program Files — 64 бита, Program Files (x86) — 32 бита | От неё зависит настройка пула приложений |
| Тип базы | Строка подключения в окне запуска | Для файловой базы нужны права пула на её папку |
| Свободен порт 80 (или 443) | netstat -ano | findstr :80 | Порт может держать другой веб-сервер или Skype старых версий |
Если на сервере стоит несколько версий платформы, публикуйте той версией, которой работают пользователи. Веб-клиент и тонкий клиент по HTTP требуют совпадения версии клиента и модуля веб-расширения.
Как доустановить модуль веб-сервера 1С
Если wsisapi.dll в каталоге bin нет, запустите установщик платформы той же версии (setup.exe), выберите «Изменить» и отметьте компонент «Модули расширения веб-сервера». Переустанавливать платформу целиком не нужно.
Пошаговая инструкция: как включить ISAPI DLL для 1С
Порядок важен: сначала компоненты IIS, потом публикация, потом разрешения. Если опубликовать базу до установки расширений ISAPI, IIS отвергнет секцию обработчиков в web.config, и публикацию придётся переделывать.
Шаг 1. Установить IIS с расширениями ISAPI
На Windows Server:
- Откройте «Диспетчер серверов» → «Управление» → «Добавить роли и компоненты».
- Отметьте роль «Веб-сервер (IIS)».
- В списке служб роли раскройте «Веб-сервер» → «Разработка приложений».
- Отметьте «Расширения ISAPI» и «Фильтры ISAPI».
- В разделе «Средства управления» оставьте «Консоль управления IIS».
- Нажмите «Установить» и дождитесь окончания.
На Windows 10/11 то же самое делается через Панель управления → Программы → Включение или отключение компонентов Windows → Службы IIS → Службы Интернета → Компоненты разработки приложений.
Быстрее — одной командой PowerShell от имени администратора.
Для Windows Server:
Install-WindowsFeature Web-Server, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Mgmt-Console
Для Windows 10/11:
Enable-WindowsOptionalFeature -Online -All -FeatureName IIS-WebServerRole, IIS-ISAPIExtensions, IIS-ISAPIFilter, IIS-ManagementConsole
После установки откройте в браузере http://localhost/. Должна появиться стартовая страница IIS — значит, веб-сервер работает.
Шаг 2. Опубликовать базу на веб-сервере
- Запустите Конфигуратор от имени администратора (правый клик по ярлыку → «Запуск от имени администратора»). Без этого кнопка «Опубликовать» выдаст ошибку доступа.
- Откройте базу и выберите
Администрирование → Публикация на веб-сервере. - Укажите имя публикации латиницей без пробелов, например
buh. Оно станет частью адреса:http://сервер/buh/. - Веб-сервер — «Internet Information Services», каталог —
C:\inetpub\wwwroot\buh. - Отметьте нужное: веб-клиент, веб-сервисы, HTTP-сервисы, OData.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
Платформа создаст в каталоге два файла: default.vrd с параметрами подключения к базе и web.config, где прописан обработчик для wsisapi.dll.
Если Конфигуратор недоступен (например, на сервере без интерфейса), используйте утилиту webinst.exe из того же каталога bin:
cd "C:\Program Files\1cv8\8.3.25.1374\bin"
webinst.exe -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Для файловой базы строка подключения будет вида -connstr "File=""D:\Bases\Buh"";". Полный список ключей выводит webinst.exe без параметров.
Шаг 3. Разрешить выполнение ISAPI-dll в сопоставлениях обработчиков
Это главный шаг, который чаще всего пропускают. Именно о нём говорят, когда пишут «включите ISAPI-dll».
- Откройте «Диспетчер служб IIS» (
inetmgr). - Слева раскройте
Сайты → Default Web Site → buh. - Дважды щёлкните «Сопоставления обработчиков».
- Найдите строку с исполняемым файлом
wsisapi.dll(у публикации 1С она обычно называется «1C Web-service Extension»). - Если её состояние «Отключено», справа нажмите «Изменить разрешения функции…».
- Отметьте «Выполнение» (вместе с «Чтением» и «Сценарием») и нажмите ОК.
Строка станет активной. Проверьте, что путь в ней указывает на wsisapi.dll той версии платформы, которой публиковали. После обновления платформы путь остаётся старым — об этом ниже.
Шаг 4. Настроить пул приложений под разрядность платформы
- В диспетчере IIS откройте «Пулы приложений».
- Выберите пул, в котором работает сайт (по умолчанию
DefaultAppPool). - Справа — «Дополнительные параметры».
- Параметр «Разрешить 32-разрядные приложения»:
Trueдля 32-битной платформы,Falseдля 64-битной.
Смена параметров пула перезапускает его рабочий процесс w3wp.exe. Все, кто сейчас работает через веб-клиент или HTTP-подключение, потеряют сеанс и несохранённые данные. Делайте это вне рабочего времени или предупредите пользователей.
Шаг 5. Выдать права на файлы
Рабочий процесс IIS работает от имени пула, а не от вашего пользователя. Ему нужен доступ:
- 📁 к каталогу публикации
C:\inetpub\wwwroot\buh— чтение (обычно уже есть у группыIIS_IUSRS); - ⚙️ к каталогу платформы
C:\Program Files\1cv8\— чтение и выполнение; - 🗄️ для файловой базы — к папке базы с файлом
1Cv8.1CD: изменение дляIIS_IUSRSили учётной записи пула.
Для клиент-серверной базы права на папку не нужны: модуль подключается к кластеру 1С по сети, а доступ к данным проверяет сам сервер 1С.
Как проверить, что ISAPI-модуль работает
Начинайте с простого адреса и двигайтесь к сложным. Так сразу понятно, на каком уровне сломано.
| Что открыть | Что должно быть |
|---|---|
http://localhost/ | Стартовая страница IIS |
http://localhost/buh/ | Окно входа веб-клиента 1С |
http://localhost/buh/ws/ИмяСервиса?wsdl | XML-описание веб-сервиса |
http://localhost/buh/hs/корневой-url/метод | Ответ HTTP-сервиса |
http://localhost/buh/odata/standard.odata/ | XML со списком опубликованных объектов OData |
Проверяйте сначала на самом сервере (localhost), затем с другого компьютера по имени или IP. Если локально работает, а снаружи нет — дело в брандмауэре Windows или сетевом оборудовании, а не в ISAPI.
Чтобы подключить тонкий клиент, добавьте базу в список и выберите вариант «На веб-сервере» с адресом http://srv1c/buh/.
Где искать подробности, если что-то не так:
- 📝 журналы IIS —
C:\inetpub\logs\LogFiles\W3SVC1\: в каждой строке код ответа и подкод (например,404 3); - 🪟 «Просмотр событий» → «Журналы Windows» → «Приложение»: падения
w3wp.exeи ошибки загрузки модуля; - 🔍 подробная страница ошибки IIS: при открытии адреса на самом сервере IIS показывает модуль, обработчик и вероятную причину.
Ошибки при включении ISAPI DLL и что с ними делать
Код ответа IIS почти всегда указывает на конкретный пропущенный шаг. Выберите свой симптом:
После обновления платформы публикация перестала работать
Классическая ловушка. При публикации путь к wsisapi.dll записывается в web.config с номером версии. Обновили платформу, удалили старую — IIS ищет библиотеку по несуществующему пути и отдаёт 500.0.
Решение — переопубликовать базу новой версией Конфигуратора или поправить путь в web.config вручную. Строка выглядит примерно так:
<add name="1C Web-service Extension" path="*" verb="*" modules="IsapiModule"
scriptProcessor="C:\Program Files\1cv8\8.3.25.1374\bin\wsisapi.dll"
resourceType="Unspecified" requireAccess="None" />
После правки перезапустите сайт командой iisreset — она обрывает сеансы всех пользователей веб-публикаций на этом сервере, поэтому выполняйте её вне рабочего времени.
Как ускорить работу публикации через ISAPI
Сам модуль wsisapi.dll лёгкий, медленнее всего обычно не он, а то, как построена связка. Что даёт заметный эффект:
- Клиент-серверная база вместо файловой. Через IIS к файловой базе обращается процесс
w3wp.exe, и при 5–10 одновременных пользователях начинаются блокировки. Для веб-доступа больше чем для пары человек нужен сервер 1С. - IIS рядом с сервером 1С. Каждый запрос веб-клиента — несколько обращений к кластеру. Если IIS и сервер 1С в разных сетях с задержкой 20–30 мс, интерфейс заметно тормозит.
- Повторное использование сеансов для веб-сервисов. Без него каждый вызов SOAP- или HTTP-сервиса открывает новый сеанс 1С и тратит время на вход. В
default.vrdдля точки веб-сервиса или HTTP-сервиса задаётся атрибутreuseSessionsи параметры пула сеансов (sessionMaxAge,poolSize,poolTimeout). Значения подбирайте под нагрузку и проверяйте на тестовой публикации. - Настройка перезапуска пула. По умолчанию IIS перезапускает рабочий процесс раз в 1740 минут (29 часов) и после 20 минут простоя. Перезапуск в рабочее время рвёт сеансы веб-клиента. Перенесите плановый перезапуск на ночь: в «Дополнительных параметрах» пула задайте конкретное время в разделе «Перезапуск».
- HTTPS и сжатие. Для работы через интернет включите HTTPS (привязка сертификата на сайте) и сжатие динамического содержимого в IIS — трафик веб-клиента хорошо сжимается.
Отдельный пул приложений под каждую крупную публикацию упрощает жизнь: перезапуск одного пула не задевает пользователей других баз.
Чем заменить ISAPI и IIS для интеграции с 1С
IIS — не единственный способ отдать 1С по HTTP. Варианты зависят от ОС и задачи.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
IIS + wsisapi.dll | Windows-сервер, интеграция с доменом, привычное администрирование | Настройка разрядности и прав, перепубликация при смене версии |
Apache 2.4 + модуль wsap24.dll (в Linux — wsap24.so) | Linux-серверы или если IIS не используют | Нужно править httpd.conf, публикация от имени администратора |
Автономный сервер ibsrv | Тестовые стенды, небольшие внутренние сервисы, платформа 8.3.14 и новее | Отдельный процесс без привычного веб-сервера, свои правила запуска |
| COM-соединение / внешнее соединение | Обмен между базами 1С и программами на одном Windows-компьютере | Не работает по HTTP, требует установленной платформы у вызывающей стороны |
| Обмен файлами (XML, JSON, CSV) | Пакетная выгрузка раз в сутки, когда онлайн не нужен | Нет мгновенного ответа, нужен регламент и контроль загрузки |
Для REST-интеграций с сайтом или CRM разница между IIS и Apache для 1С невелика: HTTP-сервисы работают одинаково. Выбор обычно определяет то, на какой ОС уже стоит сервер.