Настройка веб-сервиса для IIS¶
1. Установка IIS выполняется стандартными средствами. Необходимо установить следующие компоненты:
Web Management Tools:
-
IIS 6 Scripting Tools
-
IIS 6 WMI Compatibility
-
IIS Metabase and IIS configuration compatibility
-
IIS Management Console
-
IIS Management Scripts and Tools
World Wide Web Services:
-
ISAPI Extensions
-
ISAPI Filters
-
Default Document
-
Directory Browsing
-
HTTP Errors
-
Static Content
-
HTTP Logging
-
Request Monitor
-
Static Content Compression
-
Request Filtering
2. Если при установке платформы "1С:Предприятие" не были установлены компоненты работы с веб-сервером, их надо установить (через установку платформы):
Далее от имени администратора зайдите в "Конфигуратор" — "administration" — "Публикация на веб-сервере...". Укажите имя базы в поле "Имя". (используйте только буквы латинского алфавита). Выберите пустой каталог (путь к нему также не должен содержать кириллических символов, см. пример ниже). Включите параметр Публиковать Web-сервисы, в списке веб-сервисов включите сервис rg1CTCService. Нажмите Опубликовать.
Для публикации веб-сервисов расширения включите параметр Публиковать Web-сервисы расширений по умолчанию. Нажмите Опубликовать.
В диалоге о перезапуске веб-сервера нажмите Да.
ℹ️ Для корректной установки у пользователя должны быть права администратора на компьютере, с которого производится установка.
3. Укажите права для обработчика веб-сервисов "1С:Предприятие". Права на запуск программных продуктов (Execute) добавляются для группы IIS_IUSRS на папку ...1cv81\BIN\ (для актуальных версий 8.3.x путь: C:\Program Files\1cv8\<версия>\bin\)
4. Если база "1С:Предприятие" файловая, добавьте права на изменение (Modify) на папку и подпапки базы для той же группы.
5. В консоли IIS щелкните правой кнопкой мыши на строку с созданной папкой. Преобразуйте её в приложение.
6. Добавьте MIME типы для приложения "1С:Предприятие". Сделать это можно для сервера, для сайта или для папки (наследование присутствует).
- Добавьте настройки для обработки файлов "1С:Предприятие". На вкладке Handler Mappings добавьте скрипты (не скрипты со звездочкой) для каждого расширения -"*.1cws" и "*.1crs". Для этого последовательно выберите каждую строку, в которой указано одно из нужных расширений, затем справа в разделе "Actions" нажмите "Add Script Map…".
В открывшемся окне нажмите кнопку Request Restrictions. Во втором открывшемся окне:
Перейдите на вкладку "Access" и выберите тип доступа "Execute". Имя правила можно задать любое.
Там же перейдите на вкладку "Mapping" и отключите параметр "Invoke handler only if request is mapped to"
Альтернативой является добавление обработчика из командной строки:
⚠️ Скрипт adsutil.vbs применим только к IIS 6 (Windows Server 2003). На IIS 7 и новее используйте команды AppCmd или модуль WebAdministration в PowerShell.
C:\>cscript C:\inetpub\AdminScripts\adsutil.vbs SET /W3SVC/1/ROOT/MyApp/ScriptMaps ".1cws,с:\Program Files\1cv81\Bin\wsisapi.dll,5" ".1crs,
с:\Program Files\1cv81\Bin\wsisapi.dll,5"
На экране отобразится текст:
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
ScriptMaps: (LIST) ".1cws,с:\Program Files\1cv81\Bin\wsisapi.dll,5" ".1crs,с:\Program Files\1cv81\Bin\wsisapi.dll,5"
C:\>
ℹ️ Важно указать правильный путь: /W3SVC/1/ROOT/MyApp/ScriptMaps
8. Для обработчиков укажите дополнительные параметры — выберите действие "Edit Feature Permissions" и в открывшемся окне активируйте опции запуска скриптов и приложений.
ℹ️ Скриншот отсутствует. Описание действия: в окне "Edit Feature Permissions" установите флаги "Scripts" и "Execute" для разрешения выполнения скриптов и приложений.
9. Проверьте наличие обработчика веб-сервисов "1С:Предприятие" на вкладке ISAPI and CGI Restrictions для сервера.
Проверка наличия обработчика web-сервисов "1С:Предприятие"
Если устанавливается 32-разрядный модуль, то для обработчика включите режим Application Pool -> DefaultAppPool -> Enable 32-bit Application -> True.
Если устанавливается 64-разрядный модуль, то режим Application Pool -> DefaultAppPool -> Enable 32-bit Application -> False.
Необходимо заменить 32-разрядный обработчик, который установлен по умолчанию, на 64-разрядный. Для этого откройте Диспетчер сервера -> Роли -> Веб-сервер(IIS) -> Диспетчер служб(IIS) и выберите приложение, преобразованное из виртуального каталога с именем, заданным при публикации базы. В центральном окне выберите раздел Handler Mappings ("Сопоставление обработчиков) и перейдите в него. Откройте первую строчку 1C Web-service Extension и с помощью кнопок "Изменить" и "Обзор" укажите расположение модуля 64-разрядной версии wsisapi.dll.
Настройки для 64-разрядного модуля
10. Перейдите по ссылке:
IP-компьютера/ИмяБазы/ws/путь_указанный_при_публикации.1cws?wsdl.
Например, адрес будет выглядеть следующим образом: http://ip/BP/ws/1CTCService.1cws?wsdl
ℹ️ Скриншот отсутствует. Описание действия: адрес формируется из IP-адреса сервера, имени базы (заданного при публикации) и пути к веб-сервису из настроек публикации.
Должно появиться окно с просьбой ввести логин и пароль. Введите логин и пароль к конфигурации "1С:Предприятие", если они подойдут – то веб-сервис 1С доступен (логин должен быть написан латинскими буквами).
11. Анонимная аутентификация на IIS и доступ к базе
В случае неудачной настройки доступа нужно создать пользователя вручную:
-
Создать пользователя на компьютере (сервере) с IIS и указать ему пароль. Ни в какие группы не добавлять.
-
В консоли IIS. Имя_сервера -> Authentication -> AnonymousAuthentication -> Edit -> Set -> User name -> Password -> Confirm password.
Если используется аутентификация "1С:Предприятие": создайте пользователя с именем, которое создано на компьютере и введено в IIS. Задайте пароль и поставьте флаг "Аутентификация 1С:Предприятия".
Если используется Windows аутентификация: создайте пользователя с неким именем (лучше не использовать имя, которое создано на компьютере и введено в IIS). Установите флаг "Аутентификация Windows".
Выберите или введите пользователя в формате \\имя_компьютера\имя_пользователя. Флаг "Аутентификация 1С:Предприятия" в этом случае лучше снять.
ℹ️ Не забудьте указать путь к веб-сервисам (протокол SOAP) в "Первой Форме".