Публикация веб-сервисов на IIS 7.x, 8.x

Последние изменения: 12.10.2018

Windows Server 2012.

  1.  Включаем роль IIS
    Обязательно при настройке роли включить ASP.NET
    e8f3129af0a5a670ce75c0d6c7d84812.png                   
  2. Открываем базу в конфигураторе. Важно!  Запускать 1С нужно через правую кнопку мыши и пункт «Запуск от имени администратора». Далее в конфигураторе выбираем   меню "Администрирование" пункт "Публикация на веб-сервере". Нажимаем на кнопку «Опубликовать».
    e6fe6c867d2e681c515ba4945dcef093.png
    Если при этом будет сообщение об ошибке «Нет доступа к файлу «С:\inetpub\wwwroot\hotel\» то это значит, что вы выполнили запуск не от имени администратора.
  3. Включите поддержку 32 битных приложений в IIS.
    Для этого нужно выбрать в свойствах сервера IIS  DefaultAppPool, справа Advanced Settings, в открывшемся окне (см. картинку) 
     9b7d7377ad57142ffd4ea7d7afb08935.png
    установить параметр «Enable 32-bit application» в значение true
    e952462d7742d9f22a21b7707dc1e6fa.png
  4. Настраиваем авторизацию.
    1.  Для этого открываем свойства опубликованного пула приложений hotel
      7ac93754d9c2d120708a4e7c655e3ad1.png

      заходим в Authenticationc38a9e43215db4a5bd7f48cb50aa5d3c.png
      подсвечиваем Anonymous Authentication, справа выбираем ссылку Edit…, и, в открывшемся окне выбираем Application pool identity
    2. Открываем ссылку с публикацией веб-сервиса вида
      http://<IP address>/hotel/ws/1CHotelReservationInterfaces.1cws?wsdl
      где <IP address> указываете адрес вашего сервера
    3.  Должно появится окно с авторизацией в базу. Можете ввести имя пользователя и пароль существующего пользователя базы. Можно ничего не вводить.
      9a9c02de627b8054476418d2110a34b7.png
      Главное что в журнале регистрации 1С появится запись вида:
      230858dd7753d5f156b5b199ddec0e02.png
      Из этой записи нас интересует имя пользователя под которым IIS пытается открыть базу 1С:Отель.Должно быть такое имя: <ИМЯ ДОМЕНА>\<ИМЯ КОМПЬЮТЕРА>$ В нашем примере это FISHKA\1C$, где FISHKA – это имя домена, 1С – это имя компьютера на котором работает IIS
    4. В базе 1С:Отель создаем пользователя online, с ролью BackgroundJob, и интерфейсом BackgroundJob.
      У этого пользователя выключаем галочку «Показывать в списке пользователей» и включаем галочку «Аутентификация операционной системы», в имени пользователя пишем ту строку, которую увидели в журнале регистрации, т.е. \\<ИМЯ ДОМЕНА>\<ИМЯ КОМПЬЮТЕРА>$
      d4f5607ba308400b912cb55e4763d10e.png  7fd5b3120a0d1dd1dd383fab2d5c97d2.png  
    5. Для проверки открываем в браузере http://<IP address>/hotel/ws/1CHotelReservationInterfaces.1cws?wsdl
      Должна открыться страница с XML файлом
      95ad74a2750b32ff2b57637d29fa461a.png
      если появляется такой результат, значит веб-сервис опубликован успешно.

Нестандартный порт. 

Если вы хотите использовать нестандартный порт, т.е. порт отличный от 80. Но нужно в IIS настроить привязки.

Для этого Открываем свойства DefaultWebSite.

Выбираем справа "Bidings..."

Добавляем строку Type = http, port = ваш номер порта, IP Address = *

Пример для порта 21540

eeb3a9f866ae19923b29859b812fcf04.png

Возможные ошибки.

  1. HTTP Error 500.21 - Internal Server Error
    Причина: Не установлена роль ASP.NET.
    Решение: Поставить ASP.NET 
    d03ee4b2c7077e177a8058adb8268d17.png
  2. Если при открытии страницы c веб-сервисом спрашивает логин и пароль то нужно настроить пользователя от имени которого IIS подключается в базу 1С:Отель. См. п.4.
  3. HTTP Error 500.0 - Internal Server Error
    Причина: Не разрешен запуск 32-бит приложений
    Решение: Дать разрешение на запуск 32-бит приложений. см. п. 3

Что делать после обновления платформы.

Помогла ли вам статья?