Публикация баз данных «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012

Публикация баз данных «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012

В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного, так и для 64-разрядного модуля расширения веб-сервера.

0. Оглавление 1. Что понадобится
  1. Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
  2. Права локального администратора на данном компьютере.
  3. Дистрибутив для установки компонент «1С:Предприятие». Для настройки 64-разрядного модуля расширения веб-сервера, дистрибутив для установки 64-разрядного сервера «1С:Предприятие». В данном примере используется версия 8.3.4.389. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен.
2. Установка веб-сервера IIS

Устанавливаем веб-сервер Internet Information Server, который по умолчанию входит в поставку Microsoft Windows Server. При установке обязательно выбираем компоненты:

  • Общие функции HTTP (Common HTTP Features)
    • Статическое содержимое (Static Content)
    • Документ по умолчанию (Default Document)
    • Обзор каталогов (Directory Browsing)
    • Ошибки HTTP (HTTP Errors)
    • ASP
    • ASP.NET 3.5
    • Расширяемость .NET 3.5 (.NET Extensibility 3.5)
    • Расширения ISAPI (ISAPI Extensions)
    • Фильтры ISAPI (ISAPI Filters)
    • Ведение журнала HTTP (HTTP Logging)
    • Монитор запросов (Request Monitor)
    • Консоль управления IIS (IIS Management Console)

    Подробно про процесс развертывания веб-сервера IIS я писал:

    • В Microsoft Windows Server 2012 (R2) — здесь. IIS версии 8, после установки должны увидеть страницу Default Web Site вида:
    • В Microsoft Windows Server 2008 (R2) — здесь. IIS версии 7, после установки должны увидеть страницу Default Web Site вида:
    3. Установка компонент «1С:Предприятие»

    На этот же сервер, где развернут веб-сервер IIS, устанавливаем «1С:Предприятие» (32-разрядные компоненты) обязательно выбрав при установке компоненты:

    • 1С:Предприятие
    • Модули расширения веб-сервера

    Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить программу установки 64-разрядного сервера из соответствующей поставки «1С:Предприятие» и установить компоненту:

    • Модуль расширения веб-сервера
    4. Настройка операционной системы

    Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:\inetpub\wwwroot\ ) необходимо дать полные права группе «Пользователи» (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).

    В открывшемся окне свойств, переходим на вкладку «Безопасность» (Security) и нажимаем кнопку «Изменить» (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи» (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ» (Full control). Затем нажмем «Применить» (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК».

    Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:\Program Files (x86)\1cv8\ для 32-разрядного модуля расширения и C:\Program Files\1cv8\ для 64-разрядного) группе IIS_IUSRS. Для этого выполняем аналогичные описанным выше действия, с той лишь разницей, что для того чтобы необходимая группа появилась в списке «Группы или пользователи» (Groups or user names) необходимо нажать расположенную под списком кнопку «Добавить» (Add..), а в окне выбора групп или пользователей нажать «Дополнительно» (Advanced…).

    Затем нажимаем расположенную справа кнопку «Поиск» (Find Now), после чего выбираем необходимую группу IIS_IUSRS в таблице результатов поиска и нажимаем «ОК».

    Группа IIS_IUSRS появится в списке групп или пользователей. Даем ей полные права на на выбранную директорию и нажимаем «Применить» (Apply) для сохранения изменений.

    Ну и наконец, если публикация выполняется для файловой базы, необходимо также дать группе IIS_IUSRS полные права на каталог с расположенными файлами данной информационной базы.

    5. Публикация базы данных на веб-сервере

    Переходим к непосредственной публикации базы данных на веб-сервере. Для этого запускаем «1С:Предприятие» в режиме Конфигуратор для той базы, которую требуется опубликовать. Затем в меню выбираем «Администрирование» — «Публикация на веб-сервере…»

    Откроется окно настройки свойств публикации на веб-сервере. Основные поля необходимые для публикации уже заполнены по умолчанию:

    • Имя виртуального каталога — имя по которому будет происходить обращение к база данных на веб-сервере. Может состоять только из символов латинского алфавита.
    • Веб сервер — выбирается из списка найденных на текущем компьютере веб-серверов. В нашем случае это Internet Information Services.
    • Каталог — физическое расположение каталога, в котором будут располагаться файлы виртуального приложения.
    • Соответствующими флагами можно указать типы клиентов для публикации, а также указать возможность публикации Web-сервисов. В расположенной ниже таблице можно отредактировать список Web-сервисов которые будут опубликованы, а также в столбце «Адрес» изменить синоним, по которому будет происходить обращение к данному Web-сервису.
    • Также для веб-сервера IIS есть возможность указать необходимость выполнения аутентификации на веб-сервере средствами ОС, установив соответствующий флаг.

    Выбрав необходимые настройки публикации нажимаем «Опубликовать».

    Если публикация прошла без ошибок, увидим соответствующее сообщение.

    Публикация на веб-сервере IIS всегда выполняется для веб-сайта по умолчанию и для пула приложения по умолчанию. Стоит иметь ввиду, что при выполнении публикации из конфигуратора будет зарегистрирован 32-разрядный модуль расширения веб-сервера, а используемый по умолчанию пул приложений — DefaultAppPool — без настройки работает только с 64-разрядными приложениями. Соответственно, дальнейшие действия зависят от разрядности модуля расширения веб-сервера, который планируется использовать. Для 32-разрядного модуля расширения веб-сервера, необходимо разрешить пулу приложений использовать 32-разрядные приложения, либо же зарегистрировать 64-разрядный модуль расширения веб-сервера. Об этом пойдет речь ниже

    6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера

    Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).

    Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию — Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которое мы задавали при публикации базы данных. Для завершения публикации осталось только разрешить 32-разрядные приложения для пула приложений по умолчанию. Для этого перейдем в дереве подключений на вкладку «Пулы приложений» (Application Pools).

    В списке пулов приложений найдем пул с именем DefaultAppPool. Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт «Дополнительные параметры» (Advanced Settings).

    В открывшемся окне параметров пула приложения, в группе «Общие» (General) найдем пункт «Разрешены 32-разрядные приложения» (Enable 32-Bit Applications) и установим значение параметра равным True. Затем сохраним изменения нажав «ОК».

    7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера

    Зарегистрировать 64-разрядный модуль расширения веб-сервера можно с помощью утилиты webinst.exe соответствующей версии, расположенной в каталоге bin, каталога с установленной программой «1С:Предприятие», либо воспользоваться приведенным ниже способом.

    Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства» (Tools) — «Диспетчер служб IIS» (Internet Information Services (IIS) Manager).

    Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию — Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которым мы задавали при публикации базы данных. Для завершения публикации осталось только указать данному приложению использовать 64-разрядный обработчик запросов. Для этого откроем страницу настройки сопоставления обработчиков для данного виртуально каталога, выбрав пункт «Сопоставление обработчиков» (Handler Mappings) на начальной странице приложения.

    В таблице сопоставлений обработчиков найдем обработчик «1С Web-service Extension». Откроем данный обработчик, кликнув 2 раза по соответствующей строке в таблице.

    Отредактируем обработчик, заменив путь к исполняемой dll 32-разрядного модуля расширения веб-сервера, который выбран в данный момент, на путь к 64-разрядной версии библиотеки. В данном примере меняем путь c «C:\Program Files (x86)\1cv8\8.3.4.389\bin\wsisapi.dll» на «C:\Program Files\1cv8\8.3.4.389\bin\wsisapi.dll» воспользовавшись кнопкой выбора. Изменив путь нажимаем «ОК» для сохранения изменений.

    8. Подключение к опубликованной информационной базе через веб-браузер

    Ну вот вроде и все. Для подключений к только что опубликованной базе данных, запускаем Internet Explorer, и в строке адреса вводим путь вида http://localhost/<Имя публикации информационной базы>. В данном примере это http://localhost/DemoAccounting/.

    К данной информационной базе также можно подключиться и с любого компьютера в сети, обратившись к веб-серверу по его внутреннему (или если прокинут порт 80, по внешнему) IP-адресу.

    В этом случае, для корректной работы «1С:Предприятие», имя домена, на который идет обращение (или IP-адрес) должен быть добавлен в надежные узлы Internet Explorer, а также для него должны быть разрешены всплывающие окна. Подробнее про настройку Internet Explorer для работы веб-клиента «1С:Предприятие» читайте здесь.

    9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»

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

    В окне добавления информационной базы/группы установим переключатель в «Добавление в список существующей информационной базы» и нажмем «Далее».

    Введем имя базы данных, как она будет отображаться в списке информационных баз (должно быть уникальным для данного списка), тип расположения выберем «На веб-сервере» и нажмем «Далее».

    Вводим строку адреса для подключения к информационной базе (без префикса /ru_RU/). Также здесь можно указать параметры прокси-сервера (если есть) и способ аутентификации на веб-сервере. Указав необходимые настройки снова жмем «Далее».

    Указываем параметры запуска для информационной базы и нажимаем «Готово» для завершения работы мастера.

    После чего данная информационная база появится в списке баз окна запуска «1С:Предприятие». Обратим внимание что режим запуска Конфигуратор недоступен для данного типа подключения. Нажимаем «1С:Предприятие» для подключения к информационной базе.

    10. Конфигурационные файлы виртуального каталога

    Рассмотрим подробнее структуру файлов, которые были созданы в процессе публикации. Если веб-доступ к опубликованной информационной базе по каким-то причинам не заработал, конфигурационные файлы можно отредактировать вручную, для достижения желаемого результата (конфигурационные файлы из данной статьи для 64-разрядного модуля расширения веб-сервера можно скачать здесь).

    Перейдем в каталог, который мы указывали во время публикации базы данных. В нем увидим два файла:

    • default.vrd
    • web.config

    Оба файла доступны для просмотра и редактирования с помощью любого текстового редактора, например программы «Блокнот» (Notepad). Рассмотрим структуру этих файлов подробнее.

    10.1. Файл default.vrd

    В файле default.vrd описываются опубликованные Web-сервисы (элемент <ws>), а также указывается имя виртуального приложения (атрибут base) и строка подключения к информационной базе «1С:Предприятие» (атрибут ib). В данном примере для файловой информационной базы, строка подключения будет следующей:

    Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.

    В строке подключения можно указать логин и пароль пользователя. В этом случае, подключение к информационной базе будет выполняться от имени указанного пользователя. Например, для подключения от имени пользователя Продавец, строка подключения будет следующей:

    Для серверной информационной базы строка подключения будет иметь вид:

    Где WIN2012 — имя кластера серверов «1С:Предприятие», а Accounting — имя базы данных в кластере.

    Подробнее про структуру данного файла можно почитать в книге «Руководство администратора» 2-е издание , Приложение 2, глава 3.12.

    10.2. Файл web.config

    Файл web.config — это файл, определяющий параметры для ASP.NET web-приложения. В каждом web-приложении должен быть файл web.config, находящийся в его корневом каталоге. Наш виртуальный каталог не является исключением. В текущем файле содержатся данные об обработчике «1С Web-service Extension», обрабатывающем запросы к данному приложению. Обработчик настроен таким образом, что все запросы передаются библиотеке wsisapi.dll, расположенной в каталоге bin, каталога с файлами «1С:Предприятие». В случае использования серверных информационных баз, версия библиотеки должна соответствовать версии кластера серверов «1С:Предприятия».

    Данный обработчик можно найти (или добавить, если его нет) в Диспетчере служб IIS. Для этого необходимо выделить вкладку с текущим приложением и в окне свойств выбрать пункт «Сопоставления обработчиков» (Handler Mappings).

    В таблице сопоставлений обработчиков увидим наш обработчик «1С Web-service Extension». Если такого обработчика в списке нет, его следует добавить выбрав в окне «Действия» (Actions) пункт «Добавление сопоставления сценария с подстановочными знаками» (Add Wildcard Script Map…).

    При добавлении вводим имя обработчика и указываем путь к файлу wsisapi.dll. Данные параметры можно изменить и для действующего обработчика выбрав пункт «Изменить…» (Edit…) в окне списка действий.

    Необходимо также убедиться, что для обработчика стоит флаг «Выполнение» (Execute) в окне изменений разрешений функции. Вызвать данное окно можно выбрав пункт «Изменение разрешений функции…» (Edit Feature Permissions…) в окне «Действия» (Actions).

    Смотрите также:

    Веб-сервер представляет собой некоторую программу (службу), принимающую HTTP-запросы от клиентов, обычно от веб-браузеров, обрабатывающую данные запросы и выдающую им ответ, как правило, вместе с HTLM-страницей (сайтом), изображением, файлом, медиа-потоком или другими данными. Ниже подробно рассмотрим…

    IIS (Internet Information Services) – один из немногих штатных инструментов Windows, которым можно пользоваться, не ища более приемлемых альтернатив от других разработчиков. Веб-сервер IIS с поддержкой языка PHP можно использовать…

    FTP-Сервер обеспечивает возможность передачи файлов между клиентом и сервером с помощью протокола FTP. Здесь будет рассказано как запустить FTP-сервер в Windows Server 2008 R2. 0. Оглавление Добавление службы FTP-сервер Добавление…

    255 Responses to Публикация баз данных «1С:Предприятия» 8.3 на веб-сервере IIS в Microsoft Windows Server 2008/2012

    Добрый день! подскажите, почему при открытии под админом в Конфигураторе через ветку Администрирование-Публикация на веб-сервере происходит зависание(бесконечное открытие панели настройки публикации). Если открывать конфигуратор не под админом, то окно публикации открывается с предупреждением

    ранее успешно была опубликована другая база.

    Добрый день. С такой проблемой (зависанием) сталкиваться не приходилось.

    Попробуйте полностью удалить старую публикацию (удалите полностью весь каталог с именем базы в папке wwwroot) и попробуйте повторить публикацию через конфигуратор.

    Добрый день! При запуске и работе 1С через веб сервис, процесс IIS Worker Proccess съедает значительное количество процессорного времени. База файловая. Что было испробовано: Создал пул приложений. Привязал сайт к пулу В дополнительных параметрах настроил ограничение использования CPU (указал действие ограничения Throttle задал процент использования) Перезапустил сервис IIS(сам сервер не перезагружал)

    Но, настройка почему-то не применяется, использование CPU больше чем указано в настройка IIS.

    Подскажите, в чем может быть проблема и куда копать?

    Попробуйте все же перезапустить веб-сервер IIS. А какая конфигурация у вас опубликована в веб? Есть значительные доработки?

    Добрый день, При переходе по ссылке через браузер открывает окно 1с СЭД и запрашивает пользователя и пароль, но тонкий клиент открывает без пароля. 1с аутентификацию настроили через active directory.WEB подняли через IIS

    Добрый день, а что требуется? Доменная авторизация в 1С через браузер?

    Чтобы работала доменна аутентификация через браузер необходимо:

    1. При публикации базы из конфигуратора обязательно установить флаг «Использовать аутентификацию операционной системы» (по умолчанию не установлена). 2. Включить доменную авторизацию на IIS (по умолчанию выключена). Для этого заходим в Диспетчер служб IIS — На начальной странице выбираем категорию «Проверка подлинности» — «Проверка подлинности Windows» — «Включить». 3. Перезапускаем IIS.

    Добрый день! Не проходит доменная авторизация через браузер. На какие настройки необходимо обратить внимание?

    Чтобы работала доменна аутентификация через браузер необходимо:

    1. При публикации базы из конфигуратора обязательно установить флаг «Использовать аутентификацию операционной системы» (по умолчанию не установлена). 2. Включить доменную авторизацию на IIS (по умолчанию выключена). Для этого заходим в Диспетчер служб IIS — На начальной странице выбираем категорию «Проверка подлинности» — «Проверка подлинности Windows» — «Включить». 3. Перезапускаем IIS.

    Только что проверил на тестовом стенде, все работает. Пробуйте.

    Здравствуйте! Спасибо за статью. Зависает пул приложений, причем на одном пуле 3 базы, две могут работать, а одна перестает, или все, да вообще по-разному всегда. Это возникает периодически 1-2 раза в день. Перерыл весь интернет, но не нашел ничего, хоть чего-то, что могло бы помочь….

    В журнал событий записываются ошибки. Вот такие: Имя журнала: Application Источник: Application Error Дата: 11/30/2020 11:41:48 Код события: 1000 Категория задачи:(100) Уровень: Ошибка Ключевые слова:Классический Пользователь: Н/Д Компьютер: GurmanServer.gurmanserver.1c Описание: Имя сбойного приложения: w3wp.exe, версия: 10.0.14393.0, метка времени: 0x57899135 Имя сбойного модуля: KERNELBASE.dll, версия: 10.0.14393.3986, метка времени: 0x5f77edfa Код исключения: 0xe06d7363 Смещение ошибки: 0x000dc562 Идентификатор сбойного процесса: 0x2c04 Время запуска сбойного приложения: 0x01d6c6dde33f534c Путь сбойного приложения: C:\Windows\SysWOW64\inetsrv\w3wp.exe Путь сбойного модуля: C:\Windows\System32\KERNELBASE.dll Идентификатор отчета: 26c3369c-78a8-46c3-8214-247b9d7477c1 Полное имя сбойного пакета: Код приложения, связанного со сбойным пакетом: Xml события:

    1000 2 100 0x80000000000000

    8101 Application GurmanServer.gurmanserver.1c

    w3wp.exe 10.0.14393.0 57899135 KERNELBASE.dll 10.0.14393.3986 5f77edfa e06d7363 000dc562 2c04 01d6c6dde33f534c C:\Windows\SysWOW64\inetsrv\w3wp.exe C:\Windows\System32\KERNELBASE.dll 26c3369c-78a8-46c3-8214-247b9d7477c1

    И, вот это: Имя журнала: Application Источник: Windows Error Reporting Дата: 11/30/2020 12:57:13 Код события: 1001 Категория задачи:Отсутствует Уровень: Сведения Ключевые слова:Классический Пользователь: Н/Д Компьютер: GurmanServer.gurmanserver.1c Описание: Контейнер ошибки 1651990309847122917, тип 1 Имя события: APPCRASH Отклик: Нет данных Идентификатор CAB: 0

    Сигнатура проблемы: P1: w3wp.exe P2: 10.0.14393.0 P3: 57899135 P4: KERNELBASE.dll P5: 10.0.14393.3986 P6: 5f77edfa P7: e06d7363 P8: 000dc562 P9: P10:

    Вложенные файлы: \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER53D9.tmp.WERInternalMetadata.xml C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_2064bbc6507626e8bcaf97b54e662abba2846481_fd038983_cab_35d053e7\memory.hdmp C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_2064bbc6507626e8bcaf97b54e662abba2846481_fd038983_cab_35d053e7\triagedump.dmp

    Эти файлы можно найти здесь: C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_w3wp.exe_2064bbc6507626e8bcaf97b54e662abba2846481_fd038983_1ac95abd

    Символ анализа: Повторный поиск решения: 0 Идентификатор отчета: 26c3369c-78a8-46c3-8214-247b9d7477c1 Состояние отчета: 0 Хэшированный контейнер: af36bded15fae32ef6ed0c6f26d343e5 Xml события:

    1001 4 0 0x80000000000000

    8103 Application GurmanServer.gurmanserver.1c

    1651990309847122917 1 APPCRASH Нет данных 0 w3wp.exe 10.0.14393.0 57899135 KERNELBASE.dll 10.0.14393.3986 5f77edfa e06d7363 000dc562

    \\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER53D9.tmp.WERInternalMetadata.xml C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_2064bbc6507626e8bcaf97b54e662abba2846481_fd038983_cab_35d053e7\memory.hdmp C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_2064bbc6507626e8bcaf97b54e662abba2846481_fd038983_cab_35d053e7\triagedump.dmp C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_w3wp.exe_2064bbc6507626e8bcaf97b54e662abba2846481_fd038983_1ac95abd

    0 26c3369c-78a8-46c3-8214-247b9d7477c1 0 af36bded15fae32ef6ed0c6f26d343e5