Пошаговая инструкция настройки Web-сервисов для 1Сv8.1 и IIS 7.5/7.0

Пошаговая инструкция настройки Web-сервисов для 1Сv8.1 и IIS 7.5/7.0

При переносе базы (1Сv8.1) на новый сервер под управлением w2008 возникла необходимость настройки web-сервисов на IIS 7.0. Подобное сочетание версий продуктов стандартным образом 1С уже не поддерживается, и утилитами 1С его сделать нельзя. Пошаговая инструкция на сайте 1С уже удалена. Пришлось воссоздавать процесс по публикациям в Инете. Аналогично для IIS 7.5 (w7).

1) Установка IIS выполняется стандартными средствами. Набор достаточных компонент приведен на скриншоте.

2) Создаем папку на web сервере. В моем случае MyApp.

3) Публикуем сервис из 1С. Администрирование -> Публикация Web-сервисов.

Содержимое.

4) Зададим права для обработчика web-сервисов 1С. Права на запуск (Execute) модулей добавляются для группы IIS_IUSRS на папку …1cv81BIN.

5) Если база файловая, нужно добавить права на изменение (Modify) на папку и подпапки базы для той же группы.

6) В консоли IIS. Кликаем правой кнопкой мыши на строку с созданной нами папкой.  Преобразовываем её в приложение.

7) Добавляем MIME типы 1С. Делать это можно для сервера или для сайта, или для папки. Наследование присутствует.

8) Добавляем настройки для обработки файлов 1С. На вкладке Handler Mappings добавляем скрипты (не скрипты со звездочкой) для каждого расширения -«*.1cws» и «*.1crs».

Имена любые. Главное — для каждого расширение отдельное правило! Request Restrictions -> Access -> Script или Execute.

Альтернативой является добавление обработчика из командной строки:

C:>cscript C:inetpubAdminScriptsadsutil.vbs SET /W3SVC/1/ROOT/MyApp/ScriptMaps ".1cws,с:Program Files1cv81Binwsisapi.dll,5" ".1crs,с:Program Files1cv81Binwsisapi.dll,5"

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

ScriptMaps: (LIST) ".1cws,с:Program Files1cv81Binwsisapi.dll,5" ".1crs,с:Program Files1cv81Binwsisapi.dll,5"

C:>

Важно указать правильный путь: /W3SVC/1/ROOT/MyApp/ScriptMaps !!!!!

9) Для обработчиков нужно задать дополнительные параметры (Edit Feature Permission). Установить флаги запуска скриптов и приложений.

10) Можно проверить наличие обработчика web-сервисов 1С на вкладке ISAPI and CGI Restrictions для сервера.

Если установка идет в 64 разрядном окружении, то для обработчика нужно включить режим Alpplication Pool -> DefaultAppPool -> Enable 32-bit Application -> True.

11) Обращаемся по адресу http://localhost/MyApp/PayTerminal.1cws.

Переходим по ссылке.

12) Об анонимной аутентификации на IIS и доступе к базе. Настроить доступ с использованием автоматически создаваемого пользователя IUSR у меня не получилось :(. Зато вручную всё работает.

Создал пользователя на компьютере (сервере) с IIS и задал ему пароль. Ни в какие группы не добавлял.

В консоли IIS. Имя_сервера -> Autentification -> AnonymousAutentification -> Edit -> Set -> User name -> Password -> Confirm password.

Далее два варианта для 1С. Аутентификация 1С. Создаем пользователя с именем, как создали на компьютере и ввели в IIS. Задаем пароль и ставим флаг Аутентификация 1С:Предприятия.

Windows аутентификация. Создаем пользователя с неким именем. Лучше не использовать имя, как создали на компе и ввели в IIS. Ставим флаг Аутентификация Windows. Подбираем или вводим пользователя в формате \имя_компьютераимя_пользователя. Флаг Аутентификация 1С:Предприятия в этом случае лучше снять.

Все работает :)!

Благодарности:

//infostart.ru/public/16001/

http://mikepin.livejournal.com/3767.html

Всем спасибо за внимание!

45 Comments

  1. tsd

    а я с аутентификацией второй день парюсь. Никак не удается заставить чтобы при обращении к 8.2 через веб сервис пароль не запрашивался 🙁

    Reply
  2. Kipetcoff

    Да, геммороя просто доооофигааааааааа. Спасибо большое за пост, очень полезный. А то вообще не понятно есть ли в мире человек который под IIS 7 настроил веб-сервисы. От себя могу добавить что я подумал что нужно ещё фильтры ISAPI добавить, но это было ошибкой..Ошибка 500)))) Так что без самодеятельности))))

    Reply
  3. i_lo

    (1) Добавил п.12 в инструкцию касательно анонимной аутентификации. Хоть это для 8.1, но, думаю, аутентификация в 8.2 реализована также…

    Reply
  4. tsd

    (3) однако, вчера ближе к ночи глубокой, мысли меня посетили примерно те-же. Сегодня в ночи проверю 🙂

    Reply
  5. v.l.

    Интересно.

    Я как раз хотел web-сервис сделать на W7, «для посмотреть».

    Reply
  6. ChessCat

    народ, подскажите маленький вопрос

    я создал на IIS в разделе Web Sites новый сайт, но при нажатии на кнопку browse в этом разделе страница не открывается. Куда копать вообще ? IIS 6.0

    Reply
  7. i_lo

    (6) В IIS команда browse показывает список файлов, которые лежат в папке. И никаких страниц не открывает.

    Reply
  8. AVK_Alex

    — Server 2008 R2 Standard SP1 (IIS 7.5).

    — Платформа 1С:Предприятие 8.2 (8.2.14.519).

    — Демонстрационная конфигурация «Web-сервисы» (1.0.4.1).

    Заметил такую (нехорошую) особенность: при публикации (из конфигуратора) п

    Reply
  9. i_lo

    (8) Похоже на проблему с правами доступа. Если где-то права даны только Администратору, а на группу Администраторы нет, то вышеописанная ситуация более чем возможна. Смотреть внимательно права на папки и в IIS. Если есть сомнения, то в папках смотреть действующие роли для конкретного пользователя.

    Reply
  10. Yurkiss

    У меня почему-то не открываются скриншоты к статье, пробовал в разных браузерах…

    Reply
  11. i_lo

    (10) Yurkiss, Аналогично. У меня тоже не открываются. Причем не только в моей статье, но и в других. Началось несколько дней назад. Направил сообщение в техподдержку Инфостарта. Можете поддержать :)…

    Ещё и личные сообщения стали «за деньги». Бееее :(…

    Reply
  12. simpal

    подскажите, где взять демо конфигурацию «Web-сервисы»? только на ИТС?

    Reply
  13. AVK_Alex
    подскажите, где взять демо конфигурацию «Web-сервисы»? только на ИТС?

    Если вопрос актуален — давай емайл — помогу, чем могу 🙂

    Reply
  14. qstar

    AVK_Alex, на nullatom(a)mail.ru можно? 😉 добро не забываю 🙂

    Reply
  15. Banzai79

    (14) qstar, скинул

    Reply
  16. gn@mik

    Интересная статья, большое спасибо

    Reply
  17. botcc

    Если есть трабла с паролем при доступе к вебсервису пишите в аську 51373404 (недавно парился и решил траблу, объясню вкратце что как и где… писать статью на эту тему мне лень 🙂 )

    Reply
  18. Bezeus

    Отредактируй номера картинок в статье. Кажись, ты маленько напутал

    Reply
  19. i_lo

    (18) Поместил картинки по тексту…

    Reply
  20. defender
    Windows аутентификация. Создаем пользователя с неким именем. Лучше не использовать имя, как создали на компе и ввели в IIS. Ставим флаг Аутентификация Windows. Подбираем или вводим пользователя в формате \имя_компьютераимя_пользователя. Флаг Аутентификация 1С:Предприятия в этом случае лучше снять.

    А можно про win-аутентификацию более подробно? Что-то у меня не получается.

    Создаем пользователя с неким именем — где создавать? в 1С или на IIS?

    Reply
  21. i_lo

    (20) defender, Для win-аутентификации пользователя нужно создавать в операционной системе. Если комп в домене, то можно в нем. Потом он прописывается в IIS и 1С. При обращении к web-серверу будет вызван стандартный системный диалог аутентификации пользователя. Насколько мне помнится, даже по kerberos. При запуске 1С будет проверяться, из под какого пользователя запуск происходит. Но двойную аутентификацию (+ 1С) по этому пользователю лучше снять (у меня были осечки)…

    Reply
  22. Gerat2

    демо конфигурация Web-сервысы выдает:

    {ОбщийМодуль.ДанныеНоменклатуры(66)}: Ошибка при вызове метода контекста (Получить)

    Возврат Прокси.Получить();

    по причине:

    Ошибка вызова операции сервиса: {http://www.1c.ru/demos/products}:ДанныеНоменклатуры:Получить()

    по причине:

    Ошибка HTTP: <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01//EN»>

    <html><head><title>1C:Enterprise 8 application error</title></head><body><h2>1C:Enterprise 8 application error:</h2>HTTP: Conflict
    by reason:
    Различаются версии клиента и сервера (8.2.13.219 — 8.2.17.153), клиентское приложение: Модуль расширения веб-сервера
    by exception: 9f06d311-1431-4a54-bd6f-fa93c4d4c471</body></html> (409).

    Reply
  23. AVK_Alex

    А попробуйте обновить платформу до актуального релиза

    Reply
  24. i_lo

    (22) Gerat2, «…Различаются версии клиента и сервера (8.2.13.219 — 8.2.17.153)…» !!!! Модуль обработчика web-сервиса и сервер 1С имеют разные версии…

    Reply
  25. dsidentr2
    Reply
  26. kiruha1979

    Вопрос по доменной аутентификации (может встречалось) — аутентификация на самом ВЕБ сервере (в терминале запускаем ИЕ — localhost или IP) проходит, а с любой другой машины по (IP) не получается — 1с просит пароль.

    Конфигурация стенда:

    Сервер 1с 8.2.17.169

    Сервер SQL 2008 Р2

    Сервер Веб 2008 Р2 ИИС 7.5

    пользовательские машинки

    ПС: знаю, что в И-нете есть обсуждения — но первых две страницы из гугля уже на изусть:-(

    Reply
  27. i_lo

    (26) kiruha1979, по web-у с доменной не парился… А если просто с доменной авторизацией, то встречал такую ситуацию, что на разных машинах доменное имя пользователя может формироваться по разному. Например, на одном компьютере пользователь может быть поддомен.домен.локалпользователь, а на другом поддоменпользователь. Посмотрите, что whoami скажет у вас на терминалке и компе.

    Reply
  28. kiruha1979

    (27) проверил — везде доменпользователь. Думаю проблема в правах удаленных пользователей. А вот где и как проверить — нет вариантов?

    Reply
  29. i_lo

    (28) kiruha1979, не думаю, что в правах удаленных пользователей. Речь же не о доступе к удаленным серверам.

    Я думаю так, что при попытке входа передается на веб-сервер хэш текущего зарегистрированного пользователя. И ежели он там совпадает, то происходит авторизация.

    Интересно, а когда ошибка возникает? При входе на веб-сервер или при входе в 1С? Доменная авторизация прописывается и там, и там.

    Где искать? Думаю, в логах веб-сервера и 1С. Хотя в последнем случае негативные авторизации не записываются…

    Reply
  30. Manticor

    Люди, а есть мануал в виде пособия — как делать конфигурацию с нуля под web-сервисы?

    Reply
  31. i_lo

    (30) Manticor, есть книжка П.С.Белоулов, А.В.Островерх «1С:Предприятие от 8.0 к 8.1». Стр.166 — web-сервисы. Прекрасное описание с «0» с примерами. Её можно купить или поискать в Инете. Если же какие-то базовые знания по теме есть, то можно почитать статьи на сайте:

    http://infostart.ru/public/193460/

    http://infostart.ru/public/86791/

    Reply
  32. Manticor

    (31) (31) при первом беглом просмотре — не увидел чтобы создавали именно конфу с web-сервисами. Там скорее говорится по части прикладного объекта 1с web-сервисы)) Конечно хочется понять все на пальцах как и что)

    Reply
  33. i_lo

    (32) Manticor, или очень беглый просмотр, или не понятно, что вы подразумеваете под «создать конфу с web-сервисами». По идее это две «конфы». Одна содержит web-сервис, а другая к нему обращается. В обеих нужно сделать определенные действия. Именно эти шаги и описаны в http://infostart.ru/public/193460/. Хотя и кратко. На диске ИТС есть пример обеих конфигураций. Нет диска, эти конфигурации прицеплены к статье http://infostart.ru/public/86791/. Скачивайте, разбирайтесь. Если и это непонятно, то покупайте или скачивайте книгу http://yandex.ru/yandsearch?text=%221%D0%A1%3A%D0%9F%D1%80%D0%B5%D0%B4%D0%BF%D1%80%D0%B8­%D1%8F%D1%82%D0%B8%D0%B5%20%D0%BE%D1%82%208.0%20%D0%BA%208.1%22%20%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C&lr=213.

    Если есть конкретные вопросы, спрашивайте. Но так как это не относится к теме публикации, то лучше на форуме или личным сообщением. Оба сервиса есть на сайте.

    Reply
  34. Yashazz

    Не хочет IIS 7.5 работать с 1С 8.2.17.169 ни в какую. Локальный комп, права локального админа, всем всё разрешил, файловая база; считываю динамически wsdl и получаю: «Ошибка работы с Интернет: внутренняя ошибка сервера (500)»

    Информации в сети — ноль целых фиг десятых. Кто сталкивался? У кого-нибудь вообще 1С с IIS работает?

    Reply
  35. programmer1503

    Подскажите почему при публикации на веб-сервере недоступен пункт «Публиковать Web-сервисы»

    Reply
  36. i_lo

    (35) programmer1503, насколько я понимаю, речь о 8.2 (8.3)? У меня этот пункт доступен. С недоступностью не сталкивался. Проверьте собственно наличие web-сервисов. Они должны быть ниже в списке. Проверьте также достаточность прав. Попробуйте от админа или вообще без пользователей.

    Reply
  37. user_2010

    Спасибо! Очень помогло! Перечитана куча разных инструкций. В вашей все собрано воедино и достаточно!

    Reply
  38. Stanforeva

    Спасибо за статью, все настроил все получилось (со второй попытки но главное результат) 🙂

    Одна некритичная проблема осталась, это даже и не проблема, а больше интересно почему так: параллельно с iis я поставил apache, настроил там тоже все красиво и эротично, и под апачем запустился как веб-клиент, так и тонкий, а под iis только веб-клиент, как вот так?

    Reply
  39. Yashazz

    После долгих проб и ошибок накропал статью http://infostart.ru/public/242563/ и, если у кого совсем тупик, советую глянуть. Ну или пишите в личку, посоветую чего.

    Reply
  40. Puk2

    (26) kiruha1979, Нам помогло добавление провайдера Windows-аутентификации. С Internet Explorer 8 и FireFox (только после установки наивысшего приоритета для Kerberos) ОС-аутентификация в 1С заработала. в Chrome, я так понимаю, kerberos по умолчанию отключен, пока не разбирался. Сам занимаюсь только 1С, нашел где-то комментарий о необходимости добавить провайдера. Как именно это сделал сис.админ не знаю, скорее всего в консоли домена.

    Reply
  41. TbSasha

    Не пойму почему иногда получается так установить что шаг 6,7,8,9 можно не делать все работает? То есть строка с папкой сама уже преобразована в приложение. От чего это зависит не могу понять. Но ведь так получается иногда уже несколько раз делаю а понять в чем дело не могу:( Но если получается значит возможно. Пробую на win8.1 но еще на win7 раньше пробовал и тогда точно эти шаги не делал.

    Reply
  42. user_2010

    Добрый день! С помощью этой статьи 2 года назад разобралась с веб-сервисами … работают на сервере на разных базах SQL. Отлаживала все сначала на своем компе на файловых базах, потом уже на сервер переносила.

    Сейчас понадобилось внести изменения в веб-сервис… восстановила базу себе на комп в файловую БД, публикую уже работающий веб-сервис, донастраиваю его в Диспетчере IIS (перевожу в приложение, обработчики настраиваю, даю права на базу IUSR, IIS_IUSRS)…

    При открытии веб-сервиса в IE — ничего, ни ошибок, ничего..

    http://localhost/LST_ZUP_Test2/ws/Web_LST_ZUP?wsdl

    иногда только внизу строчка с вопросом: вы хотите открыть или сохранить Web_LST_ZUP?wsdl из localhost?

    чего-то не хватает ей… но вот чего?

    Очень нужна помощь!

    Может быть с обновлением винды что-нибудь в IIS слетело? IIS версия 7.5.7600.16385

    Reply
  43. user_2010

    (42) user_2010, Ура! разобралась … тупанула — не на тот каталог с базой дала права пользователю IIS_IUSRS

    Reply
  44. pashamak

    Для отладки веб сервисом еще необходимо в директорию конфигурации добавить пару файлов

    webservicecfg.xml и comcntrcfg.xml с одиннаковым содержимым

    <config xmlns=»http://v8.1c.ru/v8/comcntrcfg»>
    <debugconfig debug=»true» debuggerURL=»http://localhost»/>
    </config>

    Подробнее см. http://infostart.ru/public/86791/

    Reply
  45. Chaki

    Добрый день!

    Время идет и платформы меняются.

    Найти информацию по настройке инструментария прежних платформ становится все труднее, даже на ИТС.

    Как раз перенесли базу самописную (1Cv81) на новый сервер.

    Данная статья Очень выручила.

    Спасибо!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *