При переносе базы (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С:Предприятия в этом случае лучше снять.
Все работает :)!
Благодарности:
http://mikepin.livejournal.com/3767.html
Всем спасибо за внимание!
а я с аутентификацией второй день парюсь. Никак не удается заставить чтобы при обращении к 8.2 через веб сервис пароль не запрашивался 🙁
Да, геммороя просто доооофигааааааааа. Спасибо большое за пост, очень полезный. А то вообще не понятно есть ли в мире человек который под IIS 7 настроил веб-сервисы. От себя могу добавить что я подумал что нужно ещё фильтры ISAPI добавить, но это было ошибкой..Ошибка 500)))) Так что без самодеятельности))))
(1) Добавил п.12 в инструкцию касательно анонимной аутентификации. Хоть это для 8.1, но, думаю, аутентификация в 8.2 реализована также…
(3) однако, вчера ближе к ночи глубокой, мысли меня посетили примерно те-же. Сегодня в ночи проверю 🙂
Интересно.
Я как раз хотел web-сервис сделать на W7, «для посмотреть».
народ, подскажите маленький вопрос
я создал на IIS в разделе Web Sites новый сайт, но при нажатии на кнопку browse в этом разделе страница не открывается. Куда копать вообще ? IIS 6.0
(6) В IIS команда browse показывает список файлов, которые лежат в папке. И никаких страниц не открывает.
— Server 2008 R2 Standard SP1 (IIS 7.5).
— Платформа 1С:Предприятие 8.2 (8.2.14.519).
— Демонстрационная конфигурация «Web-сервисы» (1.0.4.1).
Заметил такую (нехорошую) особенность: при публикации (из конфигуратора) п
(8) Похоже на проблему с правами доступа. Если где-то права даны только Администратору, а на группу Администраторы нет, то вышеописанная ситуация более чем возможна. Смотреть внимательно права на папки и в IIS. Если есть сомнения, то в папках смотреть действующие роли для конкретного пользователя.
У меня почему-то не открываются скриншоты к статье, пробовал в разных браузерах…
(10) Yurkiss, Аналогично. У меня тоже не открываются. Причем не только в моей статье, но и в других. Началось несколько дней назад. Направил сообщение в техподдержку Инфостарта. Можете поддержать :)…
Ещё и личные сообщения стали «за деньги». Бееее :(…
подскажите, где взять демо конфигурацию «Web-сервисы»? только на ИТС?
Если вопрос актуален — давай емайл — помогу, чем могу 🙂
AVK_Alex, на nullatom(a)mail.ru можно? 😉 добро не забываю 🙂
(14) qstar, скинул
Интересная статья, большое спасибо
Если есть трабла с паролем при доступе к вебсервису пишите в аську 51373404 (недавно парился и решил траблу, объясню вкратце что как и где… писать статью на эту тему мне лень 🙂 )
Отредактируй номера картинок в статье. Кажись, ты маленько напутал
(18) Поместил картинки по тексту…
А можно про win-аутентификацию более подробно? Что-то у меня не получается.
Создаем пользователя с неким именем — где создавать? в 1С или на IIS?
(20) defender, Для win-аутентификации пользователя нужно создавать в операционной системе. Если комп в домене, то можно в нем. Потом он прописывается в IIS и 1С. При обращении к web-серверу будет вызван стандартный системный диалог аутентификации пользователя. Насколько мне помнится, даже по kerberos. При запуске 1С будет проверяться, из под какого пользователя запуск происходит. Но двойную аутентификацию (+ 1С) по этому пользователю лучше снять (у меня были осечки)…
демо конфигурация 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).
А попробуйте обновить платформу до актуального релиза
(22) Gerat2, «…Различаются версии клиента и сервера (8.2.13.219 — 8.2.17.153)…» !!!! Модуль обработчика web-сервиса и сервер 1С имеют разные версии…
Вопрос по доменной аутентификации (может встречалось) — аутентификация на самом ВЕБ сервере (в терминале запускаем ИЕ — localhost или IP) проходит, а с любой другой машины по (IP) не получается — 1с просит пароль.
Конфигурация стенда:
Сервер 1с 8.2.17.169
Сервер SQL 2008 Р2
Сервер Веб 2008 Р2 ИИС 7.5
пользовательские машинки
ПС: знаю, что в И-нете есть обсуждения — но первых две страницы из гугля уже на изусть:-(
(26) kiruha1979, по web-у с доменной не парился… А если просто с доменной авторизацией, то встречал такую ситуацию, что на разных машинах доменное имя пользователя может формироваться по разному. Например, на одном компьютере пользователь может быть поддомен.домен.локалпользователь, а на другом поддоменпользователь. Посмотрите, что whoami скажет у вас на терминалке и компе.
(27) проверил — везде доменпользователь. Думаю проблема в правах удаленных пользователей. А вот где и как проверить — нет вариантов?
(28) kiruha1979, не думаю, что в правах удаленных пользователей. Речь же не о доступе к удаленным серверам.
Я думаю так, что при попытке входа передается на веб-сервер хэш текущего зарегистрированного пользователя. И ежели он там совпадает, то происходит авторизация.
Интересно, а когда ошибка возникает? При входе на веб-сервер или при входе в 1С? Доменная авторизация прописывается и там, и там.
Где искать? Думаю, в логах веб-сервера и 1С. Хотя в последнем случае негативные авторизации не записываются…
Люди, а есть мануал в виде пособия — как делать конфигурацию с нуля под web-сервисы?
(30) Manticor, есть книжка П.С.Белоулов, А.В.Островерх «1С:Предприятие от 8.0 к 8.1». Стр.166 — web-сервисы. Прекрасное описание с «0» с примерами. Её можно купить или поискать в Инете. Если же какие-то базовые знания по теме есть, то можно почитать статьи на сайте:
http://infostart.ru/public/193460/
http://infostart.ru/public/86791/
(31) (31) при первом беглом просмотре — не увидел чтобы создавали именно конфу с web-сервисами. Там скорее говорится по части прикладного объекта 1с web-сервисы)) Конечно хочется понять все на пальцах как и что)
(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 .
Если есть конкретные вопросы, спрашивайте. Но так как это не относится к теме публикации, то лучше на форуме или личным сообщением. Оба сервиса есть на сайте.
Не хочет IIS 7.5 работать с 1С 8.2.17.169 ни в какую. Локальный комп, права локального админа, всем всё разрешил, файловая база; считываю динамически wsdl и получаю: «Ошибка работы с Интернет: внутренняя ошибка сервера (500)»
Информации в сети — ноль целых фиг десятых. Кто сталкивался? У кого-нибудь вообще 1С с IIS работает?
Подскажите почему при публикации на веб-сервере недоступен пункт «Публиковать Web-сервисы»
(35) programmer1503, насколько я понимаю, речь о 8.2 (8.3)? У меня этот пункт доступен. С недоступностью не сталкивался. Проверьте собственно наличие web-сервисов. Они должны быть ниже в списке. Проверьте также достаточность прав. Попробуйте от админа или вообще без пользователей.
Спасибо! Очень помогло! Перечитана куча разных инструкций. В вашей все собрано воедино и достаточно!
Спасибо за статью, все настроил все получилось (со второй попытки но главное результат) 🙂
Одна некритичная проблема осталась, это даже и не проблема, а больше интересно почему так: параллельно с iis я поставил apache, настроил там тоже все красиво и эротично, и под апачем запустился как веб-клиент, так и тонкий, а под iis только веб-клиент, как вот так?
После долгих проб и ошибок накропал статьюhttp://infostart.ru/public/242563/ и, если у кого совсем тупик, советую глянуть. Ну или пишите в личку, посоветую чего.
(26) kiruha1979, Нам помогло добавление провайдера Windows-аутентификации. С Internet Explorer 8 и FireFox (только после установки наивысшего приоритета для Kerberos) ОС-аутентификация в 1С заработала. в Chrome, я так понимаю, kerberos по умолчанию отключен, пока не разбирался. Сам занимаюсь только 1С, нашел где-то комментарий о необходимости добавить провайдера. Как именно это сделал сис.админ не знаю, скорее всего в консоли домена.
Не пойму почему иногда получается так установить что шаг 6,7,8,9 можно не делать все работает? То есть строка с папкой сама уже преобразована в приложение. От чего это зависит не могу понять. Но ведь так получается иногда уже несколько раз делаю а понять в чем дело не могу:( Но если получается значит возможно. Пробую на win8.1 но еще на win7 раньше пробовал и тогда точно эти шаги не делал.
Добрый день! С помощью этой статьи 2 года назад разобралась с веб-сервисами … работают на сервере на разных базах SQL. Отлаживала все сначала на своем компе на файловых базах, потом уже на сервер переносила.
Сейчас понадобилось внести изменения в веб-сервис… восстановила базу себе на комп в файловую БД, публикую уже работающий веб-сервис, донастраиваю его в Диспетчере IIS (перевожу в приложение, обработчики настраиваю, даю права на базу IUSR, IIS_IUSRS)…
http://localhost/LST_ZUP_Test2/ws/Web_LST_ZUP?wsdl
При открытии веб-сервиса в IE — ничего, ни ошибок, ничего..
иногда только внизу строчка с вопросом: вы хотите открыть или сохранить Web_LST_ZUP?wsdl из localhost?
чего-то не хватает ей… но вот чего?
Очень нужна помощь!
Может быть с обновлением винды что-нибудь в IIS слетело? IIS версия 7.5.7600.16385
(42) user_2010, Ура! разобралась … тупанула — не на тот каталог с базой дала права пользователю IIS_IUSRS
Для отладки веб сервисом еще необходимо в директорию конфигурации добавить пару файлов
webservicecfg.xml и comcntrcfg.xml с одиннаковым содержимым
Подробнее см.http://infostart.ru/public/86791/
Добрый день!
Время идет и платформы меняются.
Найти информацию по настройке инструментария прежних платформ становится все труднее, даже на ИТС.
Как раз перенесли базу самописную (1Cv81) на новый сервер.
Данная статья Очень выручила.
Спасибо!