Веб-доступ к базе 1С через IIS 7.5 на Windows Server 2008 R2

· 9 мин

Содержание

Чтобы опубликовать 1С на веб-сервере IIS 2008 (точнее, IIS 7.5 в Windows Server 2008 R2), нужны три вещи: роль IIS с расширениями ISAPI, установленные «Модули расширения веб-сервера» 1С той же разрядности, что и пул приложений, и права группы IIS_IUSRS на каталог платформы и каталог базы. Саму публикацию делает Конфигуратор, запущенный от имени администратора: Администрирование → Публикация на веб-сервере.

Частое заблуждение — что на старом сервере достаточно «нажать Опубликовать», а дальше всё заработает. На практике 2008 R2 ломается на двух местах: разрядность модуля и протокол TLS для HTTPS. Обе темы ниже разобраны отдельно.

Windows Server 2008 R2 давно снята с поддержки Microsoft (расширенная поддержка закончилась в январе 2020 года). Новые версии платформы 1С могут её не поддерживать — перед установкой сверьте системные требования именно вашей сборки платформы.

Что проверить на сервере до установки

Начните с инвентаризации. Половина проблем публикации решается ещё до первого клика в Конфигураторе.

  • 🖥️ Операционная система. Windows Server 2008 R2 с установленным Service Pack 1 и накопительными обновлениями. Без SP1 многие современные компоненты не встанут.
  • 🧮 Разрядность. Сервер 2008 R2 только 64-битный. IIS по умолчанию запускает 64-битные рабочие процессы w3wp.exe.
  • 💾 Версия платформы 1С. Запишите точный номер сборки, например 8.3.xx.yyyy. Модуль веб-сервера должен быть той же версии, что и сервер 1С (для клиент-серверной базы) или платформа, которой открывается файловая база.
  • 🔑 Лицензии. Веб-клиент и тонкий клиент через веб занимают клиентские лицензии. Для клиент-серверной базы их выдаёт кластер 1С, для файловой — лицензию получает компьютер с веб-сервером.
  • 🌐 Сеть. Решите заранее, будет ли доступ только из локальной сети или из интернета. От этого зависят порты (80 или 443) и необходимость сертификата.
  • 📁 Где лежит база. Файловая база — путь на диске сервера (лучше локальный, не сетевой). Клиент-серверная — имя сервера 1С и имя базы в кластере.

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

Роль IIS 7.5 и обязательные компоненты

В Windows Server 2008 R2 веб-сервер ставится как роль через Диспетчер сервера.

  1. Откройте Диспетчер сервера → Роли → Добавить роли.
  2. Отметьте роль Веб-сервер (IIS), нажмите «Далее» до списка служб ролей.
  3. В группе Основные возможности HTTP оставьте статическое содержимое, документ по умолчанию и ошибки HTTP.
  4. В группе Разработка приложений обязательно отметьте Расширения ISAPI и Фильтры ISAPI. Без них модуль 1С не загрузится.
  5. Если нужен вход по учётной записи Windows, в группе Безопасность отметьте Проверку подлинности Windows.
  6. В Средствах управления оставьте Консоль управления IIS.
  7. Завершите мастер и проверьте, что по адресу http://localhost открывается стартовая страница IIS.

Короткая шпаргалка по компонентам:

КомпонентНуженЗачем
Расширения ISAPIОбязательноЧерез него работает wsisapi.dll — модуль 1С
Фильтры ISAPIОбязательноТребование модуля расширения 1С
Статическое содержимоеОбязательноОтдача скриптов и картинок веб-клиента
Проверка подлинности WindowsПо ситуацииВход в 1С по учётной записи домена
ASP.NETНе нужен1С его не использует

Установка модулей расширения веб-сервера 1С

Публикация невозможна, пока на сервере нет модуля wsisapi.dll. Он ставится вместе с платформой, но только если отметить нужный компонент.

  1. Запустите установщик платформы той же версии, что и у сервера 1С.
  2. В списке компонентов включите Модули расширения веб-сервера.
  3. Если на этом же сервере будет открываться Конфигуратор для публикации, оставьте и компонент 1С:Предприятие (толстый клиент и Конфигуратор).
  4. После установки проверьте, что в каталоге C:\Program Files\1cv8\<версия>\bin есть файл wsisapi.dll.

Разрядность: главный подводный камень

Модуль 1С должен совпадать по разрядности с рабочим процессом IIS.

  • ✅ Установлена 64-битная платформа → пул приложений работает в 64-битном режиме, менять ничего не надо.
  • ⚠️ Установлена только 32-битная платформа (C:\Program Files (x86)\1cv8) → в диспетчере IIS откройте Пулы приложений → DefaultAppPool → Дополнительные параметры и установите «Разрешены 32-разрядные приложения» в True.

Если смешать разрядности, IIS не сможет загрузить библиотеку, и браузер покажет ошибку 500 вместо входа в 1С.

Публикация базы из Конфигуратора и через webinst

Через Конфигуратор

  1. Запустите 1С от имени администратора (правой кнопкой по ярлыку). Без повышенных прав Конфигуратор не сможет записать настройки IIS.
  2. Откройте базу в режиме Конфигуратор.
  3. Выберите Администрирование → Публикация на веб-сервере.
  4. Заполните поля:
    • Имя — латиницей, без пробелов, например buh. Оно станет частью адреса: http://server/buh.
    • Веб-сервер — Internet Information Services.
    • Каталог — например C:\inetpub\wwwroot\buh.
  5. Отметьте нужное: тонкий клиент и веб-клиент, веб-сервисы, HTTP-сервисы, стандартный интерфейс OData — только то, чем реально будут пользоваться.
  6. Нажмите Опубликовать. Согласитесь на перезапуск веб-сервера.

После публикации в каталоге появятся два файла: default.vrd (настройки 1С) и web.config (настройки IIS с путём к wsisapi.dll).

Через командную строку

Утилита webinst.exe лежит в том же каталоге bin. Удобна, когда Конфигуратора на сервере нет или публикаций много:

cd "C:\Program Files\1cv8\8.3.xx.yyyy\bin"
webinst.exe -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=""srv1c"";Ref=""buh"";"

Для файловой базы строка соединения выглядит так: -connstr "File=""D:\Bases\buh"";". Полный список ключей выводит сама утилита при запуске без параметров.

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

Права доступа и безопасность, включая HTTPS

Права на каталоги

Рабочий процесс IIS работает от имени пула приложений, которое входит в группу IIS_IUSRS. Выдайте ей права:

КаталогПрава для IIS_IUSRS
C:\Program Files\1cv8\<версия>\binЧтение и выполнение
Каталог публикации (C:\inetpub\wwwroot\buh)Чтение
Каталог файловой базыИзменение

Для клиент-серверной базы права на её каталог не нужны: данные лежат на SQL-сервере, а IIS обращается к кластеру 1С по сети (порт агента 1540, затем менеджер кластера и рабочие процессы).

Аутентификация

  • 🔐 Анонимная проверка IIS + пароль 1С — стандартный вариант. IIS пускает всех, а логин и пароль спрашивает сама 1С.
  • 🏢 Проверка подлинности Windows — для доменной сети. Включите её в IIS для приложения и разрешите пользователям 1С вход по аутентификации операционной системы.

Не публикуйте базу в интернет, если у пользователя «Администратор» пустой пароль. Боты перебирают адреса вида /buh, /bp, /zup постоянно.

HTTPS на IIS 7.5

  1. Импортируйте сертификат в хранилище компьютера (оснастка Сертификаты сервера в IIS).
  2. В Сайты → Default Web Site → Привязки добавьте привязку https, порт 443, выберите сертификат.
  3. В параметрах SSL приложения включите «Требовать SSL», если HTTP должен быть закрыт.

IIS 7.5 не умеет SNI. На одном IP-адресе и порту 443 работает только один сертификат. Для нескольких доменов берите сертификат с несколькими именами (SAN) или wildcard.

Второй нюанс — протоколы. В Windows Server 2008 R2 TLS 1.1 и 1.2 по умолчанию выключены, а современные браузеры по TLS 1.0 уже не подключаются. Включите TLS 1.2 в реестре:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000

После правки нужна перезагрузка сервера. Перезагрузка оборвёт все сеансы 1С — делайте её вне рабочего времени и предупредите пользователей.

Ошибки публикации и настройка производительности

Типовые ответы IIS указывают на конкретную причину. Выберите свой симптом:

Диагностика: выберите симптом

Настройки пула приложений

По умолчанию IIS перезапускает пул каждые 1740 минут (29 часов) и останавливает его после 20 минут простоя. Для 1С это неудобно: перезапуск пула разрывает сеансы веб-клиента посреди дня.

  • ⏰ В Дополнительные параметры пула → Перезапуск замените регулярный интервал на запуск по расписанию в ночное время.
  • 💤 Тайм-аут простоя увеличьте или поставьте 0, чтобы первый пользователь утром не ждал холодного старта.
  • 🧩 Для каждой опубликованной базы удобно создать отдельный пул. Тогда сбой или перезапуск одной базы не задевает остальные.
  • 🔢 Для файловой базы оставляйте один рабочий процесс на пул. Несколько процессов к одной файловой базе — лишние блокировки.

Для клиент-серверной базы основная нагрузка лежит на кластере 1С и SQL. IIS здесь только пересылает запросы, и 2 ГБ памяти под веб-роль обычно хватает с запасом.

Проверка работы и наблюдение

После публикации пройдите короткий маршрут проверки:

  1. В браузере на самом сервере откройте http://localhost/buh. Должно появиться окно входа веб-клиента.
  2. С рабочей станции откройте http://имя-сервера/buh. Если локально работает, а удалённо нет — смотрите брандмауэр Windows (порт 80 или 443).
  3. В тонком клиенте добавьте базу через «Добавить → Существующая информационная база», тип расположения «На веб-сервере», адрес http://имя-сервера/buh.
  4. Для веб-сервисов откройте http://имя-сервера/buh/ws/ИмяСервиса?wsdl — должен вернуться WSDL-описание.
  5. Для OData проверьте адрес http://имя-сервера/buh/odata/standard.odata/. Без настроенного в базе состава OData список объектов будет пустым — это не ошибка публикации.

Где искать причины, если что-то идёт не так:

  • 📄 Журналы IIS — C:\inetpub\logs\LogFiles\W3SVC1. По коду ответа и подстатусу (например, 500 19) сразу видно, на каком этапе отказ.
  • 🪟 Журнал событий Windows — раздел «Приложение»: туда попадают падения w3wp.exe и ошибки загрузки модулей.
  • 🛠️ Технологический журнал 1С — включается файлом logcfg.xml в каталоге conf платформы. Полезен, когда IIS отвечает 200, а 1С внутри работает с ошибками.
  • 📊 Монитор производительности — счётчики памяти и процессора для w3wp.exe показывают, не упирается ли сервер в ресурсы.
Перед тем как отдать адрес пользователям
Выполнено: 0 / 6

Если IIS 7.5 не подходит: другие варианты

Старый сервер не всегда стоит чинить. Есть три рабочих альтернативы.

ВариантКогда выбратьЧего ждать
Apache 2.4 на том же 2008 R2IIS конфликтует с другим ПО или не ставитсяПубликация тем же Конфигуратором, тип веб-сервера Apache 2.4; конфигурация хранится в httpd.conf
Новый Windows Server с IIS 10Сервер обновляется в ближайший годПоддержка SNI, TLS 1.2 по умолчанию, актуальные версии платформы
Linux с ApacheЕсть администратор LinuxНе нужна лицензия Windows Server, публикация через webinst

Переход на новую ОС решает сразу несколько проблем: обновления безопасности, совместимость со свежими сборками платформы и современный HTTPS без правок реестра. Если сервер смотрит в интернет, это лучший долгосрочный выбор.

Частые вопросы

Можно ли опубликовать на одном IIS несколько баз?
Да. Каждая база публикуется под своим именем и в свой каталог. Удобнее выделить каждой отдельный пул приложений.
Нужна ли отдельная лицензия для веб-клиента?
Отдельного вида лицензии нет. Веб-клиент занимает обычную клиентскую лицензию, как и тонкий клиент.
Можно ли опубликовать на одном сервере базы разных версий платформы?
Да, если на сервере установлены модули нужных версий. Каждая публикация ссылается на свой wsisapi.dll, а пулы приложений лучше разделить.
Как удалить публикацию?
В Конфигураторе откройте окно публикации и нажмите «Отключить» или выполните webinst с ключом -delete. Каталог публикации после этого можно удалить вручную.
Почему после обновления платформы база перестала открываться через браузер?
Публикация осталась на старом модуле. Повторите публикацию из Конфигуратора новой версии.