В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного, так и для 64-разрядного модуля расширения веб-сервера.
0. Оглавление
- Что понадобится
- Установка веб-сервера IIS
- Установка компонент «1С:Предприятие»
- Настройка операционной системы
- Публикация базы данных на веб-сервере
- Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
- Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
- Подключение к опубликованной информационной базе через веб-браузер
- Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
- Конфигурационные файлы виртуального каталога
- Файл default.vrd
- Файл web.config
1. Что понадобится
- Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
- Microsoft Windows Server 2012 (R2)
- Microsoft Windows Server 2008 (R2)
- Права локального администратора на данном компьютере.
- Дистрибутив для установки компонент «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)
- Разработка приложений (Application Development)
- ASP
- ASP.NET 3.5
- Расширяемость .NET 3.5 (.NET Extensibility 3.5)
- Расширения ISAPI (ISAPI Extensions)
- Фильтры ISAPI (ISAPI Filters)
- Исправление и диагностика (Health and Diagnostics)
- Ведение журнала HTTP (HTTP Logging)
- Монитор запросов (Request Monitor)
- Средства управления (Management Tools)
- Консоль управления 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:inetpubwwwroot ) необходимо дать полные права группе «Пользователи» (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).
В открывшемся окне свойств, переходим на вкладку «Безопасность» (Security) и нажимаем кнопку «Изменить» (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи» (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ» (Full control). Затем нажмем «Применить» (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК».
Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:Program Files (x86)1cv8 для 32-разрядного модуля расширения и C:Program Files1cv8 для 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)1cv88.3.4.389binwsisapi.dll» на «C:Program Files1cv88.3.4.389binwsisapi.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). В данном примере для файловой информационной базы, строка подключения будет следующей:
ib="File="C:1C_BASEDemoAccounting";"
Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.
В строке подключения можно указать логин и пароль пользователя. В этом случае, подключение к информационной базе будет выполняться от имени указанного пользователя. Например, для подключения от имени пользователя Продавец, строка подключения будет следующей:
ib="File="C:1C_BASEDemoAccounting";Usr=Продавец;Pwd=123;"
Для серверной информационной базы строка подключения будет иметь вид:
ib="Srvr="WIN2012"e;;Ref="e;Accounting"e;;"
Где 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 404.0 — Not Found
Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен.
Модуль IIS Web Core
Уведомление MapRequestHandler
Обработчик 1cw
Код ошибки 0x80070002
Запрошенный URL-адрес http://localhost:80/1z/CustomerOrdersExchange.1cws
Физический путь C:inetpubwwwroot1zCustomerOrdersExchange.1cws
Метод входа Анонимная
Пользователь, выполнивший вход Анонимная
Собственно, делал все что описано в инструкции тут:
http://catalog.mista.ru/public/185742/
и тут:
http://catalog.mista.ru/public/275820/
Не помогает.
Платформы пробовал разные как 8.2 так и 8.3
IIS8, Windows 8, файловая база, права на бин и на каталог базы нужные раздал.
default.vrd:
<?xml version=»1.0″ encoding=»UTF-8″?>
<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»;
xmlns:xs=»http://www.w3.org/2001/XMLSchema»;
xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»;
base=»/1z»
ib=»File=»D:АлексейБазыОбмен с ТСД»;»>
<ws>
<point name=»CustomerOrdersExchange»
alias=»CustomerOrdersExchange.1cws»
enable=»true»/>
<point name=»ERPMonitor»
alias=»mr1.1cws»
enable=»true»/>
<point name=»Exchange»
alias=»exchange.1cws»
enable=»true»/>
<point name=»Exchange_2_0_1_6″
alias=»exchange_2_0_1_6.1cws»
enable=»true»/>
<point name=»InterfaceVersion»
alias=»InterfaceVersion.1cws»
enable=»true»/>
<point name=»MessageExchange»
alias=»messageexchange.1cws»
enable=»true»/>
<point name=»MessageExchange_2_0_1_6″
alias=»messageexchange_2_0_1_6.1cws»
enable=»true»/>
<point name=»RemoteAdministrationOfExchange»
alias=»RemoteAdministrationOfExchange.1cws»
enable=»true»/>
<point name=»RemoteAdministrationOfExchange_2_0_1_6″
alias=»RemoteAdministrationOfExchange_2_0_1_6.1cws»
enable=»true»/>
<point name=»RemoteAdministrationOfExchange_2_1_6_1″
alias=»RemoteAdministrationOfExchange_2_1_6_1.1cws»
enable=»true»/>
</ws>
</point>
web.config:
<?xml version=»1.0″ encoding=»UTF-8″?>
<configuration>
<system.webServer>
<handlers accessPolicy=»Read, Execute, Script»>
<add name=»1cw» path=»*» verb=»*» modules=»IsapiModule» scriptProcessor=»C:Program Files (x86)1cv828.2.17.153binwsisapi.dll» resourceType=»Either» requireAccess=»Execute» preCondition=»bitness32″ />
</handlers>
</system.webServer>
</configuration>
Куда копать, господа?
Здравствуйте.
Я пытаюсь опубликовать сайт на сервере (Windows Server 2008 R2) с использованием IIS (версии 7.5). Сам сайт писал на ASP.NET с версией .NET 4.5, и включил в нем поддержку Windows-авторизации.
При запуске сайта на локальной машине из Visual Studio — все работает отлично, на все страницы переходит и все работает. Однако, при публикации сайта в IIS у меня заходит только на стандартную Default.aspx страницу и при попытке перехода на другие страницы (даже на «Контакты») мне выдает ошибку, и не важно захожу ли я на сервер или запускаю браузер прямо на сервере:
Ошибка HTTP 404.0 — Not Found Разыскиваемый вами ресурс был удален,
было изменено его имя или он временно недоступен.Запрашиваемый URL-адрес http://localhost:80/sitename/Contact
Физический путь C:IIS_AppssitenameASPwwwrootsitenameContact
Способ входа Negotiate
Пользователь, выполнивший вход
OFFICEigutnikov
Проверка подлинности Windows в IIS включена и работает — идет запрос при заходе на сайт, анонимная проверка подлинности выключена. У папки, в которой хранится сайт и его страницы все права есть.
В чем может быть проблема? Как ее решить?
=============================================================
UPD: Нашел решение — нужно в глобальный Web.config добавить:
<modules runAllManagedModulesForAllRequests="true">
<remove name="BundleModule" />
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
Возникла необходимость взаимодействовать с 1C с мобильного клиента под Windows Phone 7/8. Самым простым способом взаимодействия показалось работа через web сервисы, поддерживаемые 1С.
С точки зрения публикации web сервиса особых сложностей нет. Шаги подробно описаны в статьях:
- http://habrahabr.ru/post/136684/
- http://howknow1c.ru/programmirovanie-1c/web-servisy-1s.html
- http://infostart.ru/public/86791/
- http://1cprogrammistu.ru/60-sozdanie-web-servisa-v-1s-predpriyatii.html
- http://www.basic.visual2000.ru/kolesov/pcmag/2006-1c/2006-05/web_1c.htm
- http://v8.1c.ru/overview/Term_000000286.htm
- http://1c-dn.com/forum/forum1/topic1184/
- http://fixin.com.ru/articles/1s_web_services/article.htm
- http://infostart.ru/public/327963/
Проблемы возникли с доступом к опубликованному web-сервису 1С. Под IIS 7.5 из под Windows 2008R2 после полудня танцев с бубном проблему решить не удалось. Были изучены статьи и ветки форумов:
- http://infostart.ru/public/75205/
- http://www.forum.mista.ru/topic.php?id=568905
- http://www.forum.mista.ru/topic.php?id=665708
- http://www.forum.mista.ru/topic.php?id=539933
- и т.д.
но счастье так и не наступило.
В результате решил, что стоит попробовать поднять web сервис на Apache, поскольку с ним у меня обычно все было несколько проще с настройкой. Итак, на другом порту (8080) на том-же сервере был поднят Apache 2.2.22. В 1С был создан ещё один web сервис и опубликован уже на Apache. С настройками по умолчанию он также не заработал. Разберем ошибки.
Web сервис был опубликован в 1С под именем wsApache.
Публикация web-сервиса 1С под Apache
Соответственно, в указанном при публикации каталоге появился файл default.vrd следующего содержания:
В httpd.conf 1С добавила следующие строчки:
# 1c publication
LoadModule _1cws_module "C:/Program Files (x86)/1cv82/8.2.17.153/bin/wsap22.dll"
Alias "/ws" "C:/inetpub/wwwroot/ws/"
<
Directory
"C:/inetpub/wwwroot/ws/">
AllowOverride All
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "C:/inetpub/wwwroot/ws/default.vrd"
</
Directory
>
В целом, файлы/изменения создаваемые 1С почти рабочие. Теперь о проблемах.
Правильный линк на сервис
В некоторых статьях путь к web сервису указан как: http://имя_сервера:порт/имя_при_публикации/alias?wsdl.
В моем случае:
- Имя сервера: s-1s-1-hw
- Порт: 8080
- Имя при публикации: wsApache
- Alias из файла default.vrd: service.1cws
Соответственно, НЕПРАВИЛЬНАЯ ссылка на web сервис 1С такая: http://s-1c-1-hw:8080/wsApache/service.1cws?wsdl
Если использовать такой линк, то 1C 8.2 выдаст сообщение вида:
1C:Enterprise 8 application error:
HTTP: Not found Ошибка при работе с ресурсом /ws/service.1cws
Правильный вариант:
http://имя_сервера:порт/имя_при_публикации/ws/alias?wsdl.
Это обращение эквивалентно обращению по имени сервиса из default.vrd:
http://имя_сервера:порт/имя_при_публикации/ws/name?wsdl.
В моем случае:
- Name из файла default.vrd: Service
Соответственно, ПРАВИЛЬНЫЙ линк для доступа к web сервису 1С будет такой:
http://s-1c-1-hw:8080/wsApache/ws/service.1cws?wsdl
или такой
http://s-1c-1-hw:8080/wsApache/ws/service?wsdl
Если указать ссылку с суффиксом ?wsdl, то в веб браузере отобразиться XML файл с описанием опубликованного сервиса.
Если указать ссылку без суффикса ?wsdl, то при правильной настройке должна появится страница с гиперссылкой на опубликованный сервис:
http://s-1c-1-hw:8080/wsApache/ws/Service
Авторизация пользователя при обращении к web сервису 1С
Если попытаться получить доступ к web сервису опубликованному под Apache не исправляя файл default.vrd, то появиться стандартный диалог авторизации:
Диалог авторизации на web сервисе 1С
В тестовой базе был заведен тестовый пользователь IUSR с полными правами с пустым паролем. Если ввести в диалог в качестве логина этого пользователя, то авторизация пройдет успешно и отобразиться либо XML файл, либо ссылка на него (см. выше).
Можно исключить запрос авторизационной информации вбив логин и пароль прямо в файл default.vrd, что, конечно, не рекомендуется с точки зрения безопасности, но иногда необходимо.
Это все. В моем случае каких-то дополнительных правок конфиг файлов не потребовалось.
В некоторых статьях указывалось, что нужно убрать из httpd.conf опцию «Options None«. У меня работает в обоих вариантах, т.е. когда строка присутствует и когда она удалена.
Публикация web сервиса 1С на IIS 7.5
Как уже упоминал выше, с публикацией web сервиса на IIS 7.5 с первого раза у меня не задалось, хотя тонкий клиент запускается без проблем. Поскольку пароль в конфигурационном файле по соображениям безопасности меня не устраивал, вернулся к вопросу настройки IIS. Был опубликован web сервис с именем wsIIS и именем сервиса ServiceIIS и alias-ом serviceIIS.1cws. Галка в чекбоксе «Использовать аутентификацию операционной системы на веб-сервере» для простоты эксперимента была снята.
Публикация web сервиса 1С в IIS 7.5.
Корректная ссылка в моем случае: http://s-1c-1-hw/wsIIS/ws/ServiceIIS?wsdl. При попытке зайти из Chrome/IE получаем ошибку возвращенную IIS:
Ошибка HTTP 401.2 — Unauthorized
дабы избавиться от ошибки правим web.config сформированный 1С следующим образом:
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
configuration
>
<
system.webServer
>
<
handlers
>
<
add
name
=
"1C Web-service Extension"
path
=
"*"
verb
=
"*"
modules
=
"IsapiModule"
scriptProcessor
=
"C:Program Files (x86)1cv82binwsisapi.dll"
resourceType
=
"Unspecified"
requireAccess
=
"None"
/>
</
handlers
>
<
security
>
<
authorization
>
<
add
accessType
=
"Allow"
users
=
"*"
/>
</
authorization
>
</
security
>
</
system.webServer
>
</
configuration
>
Эта правка эквивалента изменению через консоль управления IIS для нашего опубликованного приложения с именем wsIIS правил авторизации пользователя.
Настройки IIS 7.5 для доступа к web сервисам 1C
Добавление тегов security в web.config или правка правил авторизации в консоли IIS приводит к тому, что при обращении к сервису по указанной выше ссылке появляется запрос на авторизацию. Вводим нашего тестового пользователя IUSR без пароля и получаем нужный XML файл в ответе сервера.
Прописав в default.vrd логин и пароль пользователя, как было указано выше для Apache, уберем окно авторизации и сервис будет всегда авторизовываться под указанным пользователем. Как проходит авторизация можно посмотреть в логах 1C. Но вариант с прописыванием пользователя в конфигурационный файл — не наш путь, ибо не секьюрно.
Изменим настройки авторизации пользователя (в IIS проверка подлинности), чтобы использовалась Windows авторизация. Сменить можно в консоли управления IIS, либо в конфигурационном файле. Мне больше нравиться конфигурационный файл. так как проще переносить настройки при миграции на другой сервер.
Поскольку изменения секции web.config <authentication> заблокированы на уровне IIS в файле
%windir%system32inetsrvconfigapplicationHost.config
нужно зайти туда и сменить «Deny» на «Allow» для секции «authentication»:
<
sectionGroup
name
=
"authentication"
>
<
section
name
=
"anonymousAuthentication"
overrideModeDefault
=
"Allow"
/>
<
section
name
=
"basicAuthentication"
overrideModeDefault
=
"Allow"
/>
<
section
name
=
"clientCertificateMappingAuthentication"
overrideModeDefault
=
"Deny"
/>
<
section
name
=
"digestAuthentication"
overrideModeDefault
=
"Deny"
/>
<
section
name
=
"iisClientCertificateMappingAuthentication"
overrideModeDefault
=
"Deny"
/>
<
section
name
=
"windowsAuthentication"
overrideModeDefault
=
"Allow"
/>
</
sectionGroup
>
после чего РАБОЧИЙ web.config для опубликованного web сервиса 1С будет выглядеть следующим образом:
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
configuration
>
<
system.webServer
>
<
handlers
>
<
add
name
=
"1C Web-service Extension"
path
=
"*"
verb
=
"*"
modules
=
"IsapiModule"
scriptProcessor
=
"C:Program Files (x86)1cv82binwsisapi.dll"
resourceType
=
"Unspecified"
requireAccess
=
"None"
/>
</
handlers
>
<
security
>
<
authorization
>
<
add
accessType
=
"Allow"
users
=
"*"
/>
</
authorization
>
<
authentication
>
<
windowsAuthentication
enabled
=
"true"
useKernelMode
=
"true"
>
<
providers
>
<
clear
/>
<
add
value
=
"Negotiate"
/>
<
add
value
=
"NTLM"
/>
</
providers
>
<
extendedProtection
tokenChecking
=
"Allow"
/>
</
windowsAuthentication
>
<
basicAuthentication
enabled
=
"false"
/>
<
anonymousAuthentication
enabled
=
"false"
/>
</
authentication
>
</
security
>
</
system.webServer
>
</
configuration
>
Эквивалент последней выполненной операции (настройка <authentication>) — публикация сервиса с включенной галкой в чекбоксе «Использовать аутентификацию операционной системы на веб-сервере». 1С при публикации меняет эту настройку не в web.config, а в настройках IIS через API. В любом случае изменения должны быть видны в консоли управления IIS:
Настройка аутентификации при публикации web сервиса 1С в IIS
На всякий случай для проверки настроек при публикации web сервиса имеет смысл в консоли управления IIS зайти в следующие разделы:
Публикация web сервиса 1С в IIS. Настройка через консоль.
После указанной выше настройки web.config, удаляем жестко прописанные логин и пароль из файла default.vrd. На всякий случай перегружаем IIS. Если для доменных пользователей прописаны корректные соответствия в учетных записях 1С, то авторизация пройдет прозрачно под доменными учетными записями, в чем можно будет убедиться посмотрев в логах авторизации 1С.
Здесь приводится ряд ошибок IIS (и способы их устранения) которые с высокой вероятностью могут возникнуть при публикации web сервиса 1С на IIS.
Доступ из Visual Studio 2012
Как подробно описано в статье на хабре, чтобы добавить ссылку на опубликованный web сервис 1С в Visual Studio для разработки клиента необходимо создать приложение (например, консольное), кликнуть правой кнопкой мышки на solution и выбрать пункт «Add Service Reference…». Следует обратить внимание на точное указание ссылки непосредственно на WSDL описание, т.е. без указания суффикса ?wsdl Visual Studio ничего не обнаружит.
Добавление reference к web службе 1С из Visual Stiudio.
Далее разрабатываем обычный клиент для web сервиса.
Удачи!!!
Использование веб-сервера и публикаций информационных баз — один из способов оптимизации 1С. Особенно при работе с ИБ в файловом варианте. Так безопаснее. Сотрудники подключаются к ИБ 1С через браузер или тонкий клиент, не имея прямого доступа к файлам.
В статье расскажем, как решали возникающие вопросы по настройкам Internet Information Services. Через призму своего опыта и коллег.
Как правило, ошибки повторяются. Например, ошибка 0x800700c1 в IsapiModule или HTTP 500.0 Internal Server Error.
I. Как перевести опубликованные базы 1С на HTTPS-протокол
Подробнее описано здесь. В проекте использовали бесплатный SSL-сертификат Let’s Encrypt. Но поспешили отключить внешние соединения на 80-й порт — что было ошибкой.
Сертификат выдается сроком на 90 дней. Для автоматического продления создается периодическое задание в Планировщике. При запуске задачи сайт должен быть доступен (пройти проверку домена) по 80-му порту.
Вопрос решили установкой переадресации на 443-й порт средствами IIS (301-й редирект с http на https). Использовали стандартный модуль URL Rewrite. Запросы http автоматически перенаправляются сайтом на защищенный https.
II. Типовая настройка и публикация информационных баз на IIS
На что обратить внимание:
1. Состав компонентов IIS — в Интернете полно инструкций и указаний. Повторяться не будем.
2. Установка 1С необходимой разрядности. Варианта 2: x86 (32-разрядное приложение) или x64. Обязательно выбираем «Модули расширения веб-сервера».
Установка модулей расширения веб-сервера
3. Права для встроенной группы/пользователю веб-сервера (IUSR) на папки:
- с установленной платформой — на «чтение и выполнение» (для старта процессов);
- самих расположений ИБ — на «изменение» (в случае файлового варианта).
4. Публикация базы через Конфигуратор 1С. Возможно потребуется открыть программу с повышенными правами — «Запуск от имени администратора».
5. Для 32-разрядного клиента 1С в диспетчере IIS включаем разрешение запуска (DefaultAppPool — Дополнительные параметры — Разрешены 32-разрядные приложения = True). Для 1C x64 — значение не меняем.
6. На странице сопоставления обработчиков для «1С Web-service Extension» потребуется указать путь к исполняемому модулю:
- x86 — «C:Program Files (x86)1cv88.3.x.xxbinwsisapi.dll»;
- x64 — «C:Program Files1cv88.3.x.xxbinwsisapi.dll».
Либо изменяем путь к библиотеке в файлах web.config через Блокнот (располагается, как правило, в c:inetpubwwwroot<имя базы>).
Если в п. 2 все сделано правильно — по указанному пути должен присутствовать файл wsisapi.dll.
7. В частных случаях требуется перезапуск служб IIS. Выполните «Перезапустить» в оснастке управления или перезагрузите сервер.
✅ Соблюдаем соответствие разрядности: если запускаем и публикуем 64-разрядный клиент 1С:Предприятие, то dll также должна быть 64-битной версии.
Если публикуем 32-разрядную версию 1С, то ставим разрешение запуска 32-разрядных приложений на IIS и проверяем путь к wsisapi из каталога x86.
Пример с более подробным описанием — установка веб-сервера IIS на Windows 10 Pro для 1С.
III. Если клиент 1С зависает при подключении к базе по web
Прежде посмотрите этот материал — там общие рекомендации.
Другой случай. Файловая ИБ опубликована на IIS. После авторизации зависает на эмблеме 1С. При открытии Конфигуратора — все нормально.
В журналах Windows ошибка «Процесс, обслуживающий пул приложений «1С», не ответил на команду ping».
Что посмотреть:
- проверьте права на папку с базой 1С для IUSR/IIS_IUSRS, уровень доступа — на «изменение»;
- в оснастке IIS «Пулы приложений — <пул_1С> — Дополнительные параметры — Модель процесса» задайте для «Максимальная задержка отклика при проверке связи» значение, превышающее 90 секунд;
- посмотрите на поведение IIS при «Проверка связи включена» = False.
? Из справки: установка [pingingEnabled] (Проверка связи) в значение false не позволит IIS проверять, выполняется ли рабочий процесс, и таким образом сохранит его активным до остановки процесса отладки.
✅ Установка «Максимальное время отклика пинга» в большое значение позволит IIS продолжать наблюдение за рабочим процессом.
IV. Ошибка сервера в приложении ‘/AO_SSR’
Информационная база 1C опубликована на IIS. При работе через тонкий клиент, при нажатии на «Отчеты» вываливается ошибка.
«Ошибка сервера в приложении ‘/AO_SSR’. Обнаружено потенциально опасное значение Request.Path, полученное от клиента.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
Сведения об исключении: System. Web. HttpException».
✅ Откройте настройки пула приложений и проверьте «Режим управляемого конвейера» = «Classic».
Диспетчер служб IIS — Пулы приложений — DefaultAppPool — Дополнительные параметры — Общие ↴
Настройка режима управляемого конвейера
Частный вариант. Установлены два сервера 1С версий 8.3.16 и 8.3.18 (на разных диапазонах портов). Есть опубликованная база на 8.3.16, а также база на 8.3.18.
При этом база на 8.3.16 доступна, а на 8.3.18 появляется ошибка «HTTP 500.0 — Internal Server Error».
Если перезапустить службы IIS, то получается наоборот. База на 8.3.18 становится доступной, а на 8.3.16 — с той же ошибкой. И так по кругу.
✅ Возможный выход — разнесение публикаций на разные пулы приложений через оснастку управления IIS.
VI. Подробнее об ошибке HTTP 500.0
В первую очередь смотрим официальную статью Microsoft и рекомендации по дополнительному коду HResult. Например, по 0x800700c1 сообщается следующее.
0x800700c1 — «Сопоставление сценария является не допустимым»
Далее плавно переходим в пункт «II. Типовая настройка и публикация информационных баз на IIS» и проверяем сопоставление обработчиков.
✅ Если требуется одновременная поддержка 32 и 64-битных версий 1С, то добавьте в конфигурацию IIS дополнительный пул (например, DefaultAppPool32), включив у него поддержку 32-битных приложений.
У всех 32-битных публикаций в основных настройках web-сервера выберите этот пул приложений. У 64-битных публикаций — оставьте пул приложений DefaultAppPool (по умолчанию), у которого поддержка 32-битных приложений отключена.
Добрый день, коллеги. Целый день бьюсь над публикацией базы — никак не получается.
Ошибка HTTP 404.0 — Not Found
Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен.
Модуль IIS Web Core
Уведомление MapRequestHandler
Обработчик 1cw
Код ошибки 0x80070002
Запрошенный URL-адрес http://localhost:80/1z/CustomerOrdersExchange.1cws
Физический путь C:inetpubwwwroot1zCustomerOrdersExchange.1cws
Метод входа Анонимная
Пользователь, выполнивший вход Анонимная
Собственно, делал все что описано в инструкции тут:
http://catalog.mista.ru/public/185742/
и тут:
http://catalog.mista.ru/public/275820/
Не помогает.
Платформы пробовал разные как 8.2 так и 8.3
IIS8, Windows 8, файловая база, права на бин и на каталог базы нужные раздал.
default.vrd:
<?xml version=»1.0″ encoding=»UTF-8″?>
<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»;
xmlns:xs=»http://www.w3.org/2001/XMLSchema»;
xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»;
base=»/1z»
ib=»File=»D:АлексейБазыОбмен с ТСД»;»>
<ws>
<point name=»CustomerOrdersExchange»
alias=»CustomerOrdersExchange.1cws»
enable=»true»/>
<point name=»ERPMonitor»
alias=»mr1.1cws»
enable=»true»/>
<point name=»Exchange»
alias=»exchange.1cws»
enable=»true»/>
<point name=»Exchange_2_0_1_6″
alias=»exchange_2_0_1_6.1cws»
enable=»true»/>
<point name=»InterfaceVersion»
alias=»InterfaceVersion.1cws»
enable=»true»/>
<point name=»MessageExchange»
alias=»messageexchange.1cws»
enable=»true»/>
<point name=»MessageExchange_2_0_1_6″
alias=»messageexchange_2_0_1_6.1cws»
enable=»true»/>
<point name=»RemoteAdministrationOfExchange»
alias=»RemoteAdministrationOfExchange.1cws»
enable=»true»/>
<point name=»RemoteAdministrationOfExchange_2_0_1_6″
alias=»RemoteAdministrationOfExchange_2_0_1_6.1cws»
enable=»true»/>
<point name=»RemoteAdministrationOfExchange_2_1_6_1″
alias=»RemoteAdministrationOfExchange_2_1_6_1.1cws»
enable=»true»/>
</ws>
</point>
web.config:
<?xml version=»1.0″ encoding=»UTF-8″?>
<configuration>
<system.webServer>
<handlers accessPolicy=»Read, Execute, Script»>
<add name=»1cw» path=»*» verb=»*» modules=»IsapiModule» scriptProcessor=»C:Program Files (x86)1cv828.2.17.153binwsisapi.dll» resourceType=»Either» requireAccess=»Execute» preCondition=»bitness32″ />
</handlers>
</system.webServer>
</configuration>
Куда копать, господа?
В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного, так и для 64-разрядного модуля расширения веб-сервера.
0. Оглавление
- Что понадобится
- Установка веб-сервера IIS
- Установка компонент «1С:Предприятие»
- Настройка операционной системы
- Публикация базы данных на веб-сервере
- Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
- Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
- Подключение к опубликованной информационной базе через веб-браузер
- Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
- Конфигурационные файлы виртуального каталога
- Файл default.vrd
- Файл web.config
1. Что понадобится
- Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
- Microsoft Windows Server 2012 (R2)
- Microsoft Windows Server 2008 (R2)
- Права локального администратора на данном компьютере.
- Дистрибутив для установки компонент «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)
- Разработка приложений (Application Development)
- ASP
- ASP.NET 3.5
- Расширяемость .NET 3.5 (.NET Extensibility 3.5)
- Расширения ISAPI (ISAPI Extensions)
- Фильтры ISAPI (ISAPI Filters)
- Исправление и диагностика (Health and Diagnostics)
- Ведение журнала HTTP (HTTP Logging)
- Монитор запросов (Request Monitor)
- Средства управления (Management Tools)
- Консоль управления 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:inetpubwwwroot ) необходимо дать полные права группе «Пользователи» (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).
В открывшемся окне свойств, переходим на вкладку «Безопасность» (Security) и нажимаем кнопку «Изменить» (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи» (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ» (Full control). Затем нажмем «Применить» (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК».
Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:Program Files (x86)1cv8 для 32-разрядного модуля расширения и C:Program Files1cv8 для 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)1cv88.3.4.389binwsisapi.dll» на «C:Program Files1cv88.3.4.389binwsisapi.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). В данном примере для файловой информационной базы, строка подключения будет следующей:
ib="File="C:1C_BASEDemoAccounting";"
Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.
В строке подключения можно указать логин и пароль пользователя. В этом случае, подключение к информационной базе будет выполняться от имени указанного пользователя. Например, для подключения от имени пользователя Продавец, строка подключения будет следующей:
ib="File="C:1C_BASEDemoAccounting";Usr=Продавец;Pwd=123;"
Для серверной информационной базы строка подключения будет иметь вид:
ib="Srvr="WIN2012"e;;Ref="e;Accounting"e;;"
Где 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 404.0 — Not Found Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен. Модуль IIS Web Core Уведомление MapRequestHandler Обработчик 1cw Код ошибки 0x80070002 Запрошенный URL-адрес Физический путь C:inetpubwwwroot1zCustomerOrdersExchange.1cws Метод входа Анонимная Пользователь, выполнивший вход Анонимная Собственно, делал все что описано в инструкции тут: и тут: Не помогает. Платформы пробовал разные как 8.2 так и 8.3 IIS8, Windows 8, файловая база, права на бин и на каталог базы нужные раздал. default.vrd: <?xml version=»1.0″ encoding=»UTF-8″?> <point xmlns=»; xmlns:xs=»; xmlns:xsi=»; web.config: Куда копать, господа?
Скриншотик для наглядности
Проблема решена, виноват был флажок «Вызывать обработчик только при сопоставлении запроса с» в ограничениях запроса в сопоставлении сценариев в настройках IIS.
Тэги:
Комментарии доступны только авторизированным пользователям
- Remove From My Forums
iis 8 Ошибка HTTP 404.0 — Not Found
-
Вопрос
-
Доброго времени суток, установил веб сайт на iis 8(dedic win server 2012 x64), локально и в интернете открывается только главная страница site.ru(её основа index.php), но все ссылки на сайте открываются по физическому пути, например «C:sitesite.rufaq»,
то есть не могу понять почему открываются физические пути, я вычитал, что то про StaticFile,но не знаю какой путь для него прописывать, т.к. не понимаю суть этого параметра.Используется движок wordpress.
Выводит ошибку:
Ошибка HTTP 404.0 — Not Found
Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен.-
Изменено
19 февраля 2014 г. 7:09
-
Изменено
Ответы
-
IIS нативно не поддерживает .htaccess. Ознакомьтесь со ссылкой http://codex.wordpress.org/Installing_on_Microsoft_IIS. Там написано как релизовать аналогичное в web.config. Убедитесь, что модуль URL rewrite у вас установлен.
-
Помечено в качестве ответа
Takune
19 февраля 2014 г. 9:23
-
Помечено в качестве ответа