Что делать, если отсутствует файл wsisapi.dll после обновления платформы 1С и как настроить IIS?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обновлении платформы 1С:Предприятие системные администраторы часто сталкиваются с ситуацией, когда после установки нового релиза в папке bin отсутствует критически важный файл wsisapi.dll. Это приводит к неработоспособности веб-публикаций на сервере IIS. В данной статье мы разберем причины возникновения этой проблемы, рассмотрим правильный алгоритм установки компонентов и изучим способы автоматизации обновления публикаций, чтобы избежать рутинной ручной работы.

Выясняем причину: почему пропал файл wsisapi.dll?

Рассмотрим ситуацию, описанную в теме: при переходе с версии 8.3.17.1549 на 8.3.17.1851 пользователь обнаружил, что в каталоге новой платформы нет библиотеки расширения веб-сервера. Проанализируем процесс установки 1С. Файл wsisapi.dll не является частью базовой платформы; он входит в состав специфического компонента «Модули расширения веб-сервера».

Основная причина проблемы заключается в том, что при запуске setup.exe новой версии установщик по умолчанию предлагает тот набор компонентов, который был выбран при последней установке. Однако иногда этот механизм дает сбой, или администратор случайно пропускает шаг выбора компонентов. Если флажок на пункте «Модули расширения веб-сервера» не установлен, папка bin будет содержать только исполняемые файлы платформы и клиента, но не библиотеки для взаимодействия с IIS.

Решение: необходимо запустить установку платформы повторно в режиме изменения состава компонентов или просто установить ту же версию заново, убедившись, что выбран пункт «Модули расширения веб-сервера».

Обновление сопоставления обработчиков в IIS вручную

После того как мы убедились, что файл wsisapi.dll появился в папке C:\Program Files\1cv8\8.3.x.xxxx\bin\, нам необходимо сообщить веб-серверу IIS, что теперь нужно использовать библиотеку из новой папки. Рассмотрим, как это сделать через консоль управления IIS:

  1. Откроем Диспетчер служб IIS.
  2. В дереве соединений выберем нашу опубликованную базу.
  3. В центральной части окна откроем раздел «Сопоставления обработчиков» (Handler Mappings).
  4. Найдем обработчик, отвечающий за 1С (обычно он называется 1C Web-service Extension).
  5. Нажмем «Изменить» и в поле «Исполняемый файл» укажем путь к wsisapi.dll в папке новой версии платформы.

Однако, если баз много, делать это вручную для каждой публикации — трудоемкий процесс. Разберем более эффективные методы.

Метод публикации через Конфигуратор и риски перезатирания default.vrd

Самый простой способ обновить пути — зайти в Конфигуратор под новой версией платформы и выполнить команду «Администрирование — Публикация на веб-сервере». При нажатии кнопки «Опубликовать» система автоматически обновит все настройки в IIS, прописав актуальные пути к библиотекам текущей версии 1С.

Но здесь кроется важный нюанс, который мы должны проанализировать. Файл default.vrd, находящийся в каталоге публикации, содержит настройки взаимодействия базы с веб-сервером. Если вы вручную вносили в него изменения (например, настраивали OpenID, меняли параметры времени ожидания или добавляли специфические точки подключения), то при автоматической перепубликации из Конфигуратора эти правки могут быть утеряны. Программа создает файл default.vrd заново на основе стандартного шаблона.

Совет: Если ваш default.vrd содержит сложную кастомизацию, лучше использовать методы изменения только пути к расширению, не затрагивая сам файл конфигурации.

Автоматизация с помощью утилиты webinst

Для системных администраторов, предпочитающих автоматизацию, платформа предоставляет консольную утилиту webinst.exe. Она находится в папке bin установленной платформы. Рассмотрим пример команды для публикации или обновления базы:


"C:\Program Files\1cv8\8.3.17.1851\bin\webinst.exe" -iis -wsisapi -dir "C:\inetpub\wwwroot\MyBase" -connstr "Srvr=Server1C;Ref=MyBase;" -confPath "C:\inetpub\wwwroot\MyBase\default.vrd"

Параметры утилиты:

Использование скриптов на базе webinst позволяет обновить все публикации одной командой после установки новой платформы.

Использование символьных ссылок (Junction points) для «вечной» настройки

Выясним, как опытные администраторы решают проблему обновления путей раз и навсегда. Вместо того чтобы менять пути в IIS при каждом обновлении 1С, можно создать символьную ссылку на актуальную папку bin.

Разберем алгоритм действий:

  1. Создаем папку-ссылку, например, C:\1C_Web_Modules, которая будет указывать на C:\Program Files\1cv8\8.3.17.1549\bin.
  2. В настройках IIS (Handler Mappings) указываем путь к wsisapi.dll через эту ссылку: C:\1C_Web_Modules\wsisapi.dll.
  3. При выходе новой версии платформы (например, 8.3.17.1851) мы просто перенаправляем ссылку на новую папку.

Команда для создания такой ссылки в Windows (через командную строку от имени администратора):

mklink /J "C:\1C_Web_Modules" "C:\Program Files\1cv8\8.3.17.1851\bin"

Теперь при каждом обновлении платформы нам достаточно выполнить одну команду по обновлению ссылки, и все публикации в IIS мгновенно начнут использовать новую версию платформы без изменения настроек самого веб-сервера.

Проверка прав доступа и разрядности

Рассмотрим еще два критических момента, которые часто мешают запуску веб-клиента после обновления:

1. Права доступа к папке bin. Пользователь, от имени которого работает IIS (обычно это IIS_IUSRS или IUSR), должен иметь права на «Чтение и выполнение» для папки новой версии платформы 1С. Поскольку при установке создается новая директория в Program Files, права со старой папки могут не унаследоваться автоматически. Проверьте вкладку «Безопасность» в свойствах папки bin новой платформы.

2. Разрядность приложений. Если вы установили 64-битную платформу 1С, убедитесь, что в настройках Пула приложений (Application Pool) в IIS параметр «Разрешить 32-разрядные приложения» установлен в False. Если же платформа 32-битная — в True. Несоответствие разрядности библиотеки wsisapi.dll и настроек пула IIS приведет к ошибке 500.

Проанализировав все вышеперечисленные шаги, мы видим, что проблема отсутствия wsisapi.dll и обновления путей решается комплексно: от внимательности при установке компонентов до грамотной автоматизации через символьные ссылки или командную строку.

← На главную