У пользователя группы iusr отсутствуют права на доступ к каталогу 1с
Использование веб-сервера и публикаций информационных баз — один из способов оптимизации 1С. Особенно при работе с ИБ в файловом варианте. Так безопаснее. Сотрудники подключаются к ИБ 1С через браузер или тонкий клиент , не имея прямого доступа к файлам.
В статье расскажем, как решали возникающие вопросы по настройкам Internet Information Services. Через призму своего опыта и коллег.
Подробнее описано здесь . В проекте использовали бесплатный SSL-сертификат Let's Encrypt. Но поспешили отключить внешние соединения на 80-й порт — что было ошибкой.
Сертификат выдается сроком на 90 дней. Для автоматического продления создается периодическое задание в Планировщике. При запуске задачи сайт должен быть доступен (пройти проверку домена) по 80-му порту.
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)\1cv8\8.3.x.xx\bin\wsisapi.dll»;
- x64 — «C:\Program Files\1cv8\8.3.x.xx\bin\wsisapi.dll».
Либо изменяем путь к библиотеке в файлах web.config через Блокнот (располагается, как правило, в c:\inetpub\wwwroot\).
Если в п. 2 все сделано правильно — по указанному пути должен присутствовать файл wsisapi.dll.
7. В частных случаях требуется перезапуск служб IIS . Выполните «Перезапустить» в оснастке управления или перезагрузите сервер.
✅ Соблюдаем соответствие разрядности: если запускаем и публикуем 64-разрядный клиент 1С:Предприятие, то dll также должна быть 64-битной версии.
Если публикуем 32-разрядную версию 1С, то ставим разрешение запуска 32-разрядных приложений на IIS и проверяем путь к wsisapi из каталога x86.
III. Если клиент 1С зависает при подключении к базе по web
Прежде посмотрите этот материал — там общие рекомендации.
Другой случай. Файловая ИБ опубликована на IIS. После авторизации зависает на эмблеме 1С. При открытии Конфигуратора — все нормально.
В журналах Windows ошибка «Процесс, обслуживающий пул приложений "1С", не ответил на команду ping».
- проверьте права на папку с базой 1С для IUSR/IIS_IUSRS, уровень доступа — на «изменение»;
- в оснастке IIS «Пулы приложений — — Дополнительные параметры — Модель процесса» задайте для « Максимальная задержка отклика при проверке связи » значение, превышающее 90 секунд;
- посмотрите на поведение IIS при «Проверка связи включена» = False.
📝 Из справки: установка [pingingEnabled] (Проверка связи) в значение false не позволит IIS проверять, выполняется ли рабочий процесс, и таким образом сохранит его активным до остановки процесса отладки.
✅ Установка «Максимальное время отклика пинга» в большое значение позволит IIS продолжать наблюдение за рабочим процессом.
IV. Ошибка сервера в приложении '/AO_SSR'
Информационная база 1C опубликована на IIS. При работе через тонкий клиент, при нажатии на «Отчеты» вываливается ошибка.
« Ошибка сервера в приложении '/AO_SSR'. Обнаружено потенциально опасное значение Request.Path, полученное от клиента.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
✅ Откройте настройки пула приложений и проверьте «Режим управляемого конвейера» = «Classic».
Пока решил проблему следующим образом: в проверке подлинности в анонимной проверке указал пользователя с админскими правами. Заработало, но чувствую, что так не рекомендуется
(1) нужно дать права на запуск (Выполнение) модулей для группы IIS_IUSRS на папку запуска 1С:
C:\Program Files (x86)\1cv8\8.3.9.1818\bin.
Точный путь подставить свой.
Пока решил проблему следующим образом: в проверке подлинности в анонимной проверке указал пользователя с админскими правами. Заработало, но чувствую, что так не рекомендуется
(2) У пользователя IUSR или группы(не помню, как она там называется), полный доступ к папке с базой есть?
(3) Сервер 1с же. IIS работает с "кластером 1с", и уже он с СУБД. В данном случае на каталог с базой не надо права IUSR давать т.к. у этого пользователя нет обращений напрямую к файлу БД.
(4) А, действительно. Невнимательно прочитал.
(1) Согласно той статье, нужно было разрешать 32-х разрядные приложения. И wsisapi.dll используют в ней от x32 дистрибутива.
Не знаю, это ли явилось причиной, но лучше переделать на публикацию x64.
Почти всё то же самое, но нужно выполнить ещё пару действий:
1. Заходим в каталог с опубликованной базой (по умолчанию это
C:\inetpub\wwwroot\)
и открываем в блокноте файл web.config
В этом файле присутствует строка:
В этой строке нужно заменить фрагмент
C:\Program Files(x86)\1cv8\
на
C:\Program Files\1cv8\
При этом не забудьте убедиться, что по указанному пути (C:\Program Files\1cv8\8.xxx.xxx.xxx\bin\wsisapi.dll - без "x86") присутствует файл wsisapi.dll
2. Открываем настройки IIS: Пуск -> Панель управления -> Администрирование -> IIS Manager
Открываем ISAPI and CGI Restrictions
Проверяем, что у расширения "1C Web-service Extension" стоит статус Allowed
Видим, что у расширения "1C Web-service Extension" в разделе Path стоит
C:\Program Files(x86)\1cv8\8.xxx.xxx.xxx\bin\wsisapi.dll
необходимо указать 64-разрядную версию DLL, т.е. сменить путь на:
C:\Program Files\1cv8\8.xxx.xxx.xxx\bin\wsisapi.dll
Windows
В нашем примере будет использоваться 1C с локальной файловой базой
Установка IIS на Windows 7
Пуск — Панель управления — Программы и компоненты — Включение или отключение компонентов Windows
Установка IIS на Windows Server
Установка IIS на Windows Server происходит аналогично через Добавление Ролей и компонентов
Настройка IIS под 1С
Добавление пользователя IUSR в группу IIS_IUSRS
Для настройки прав доступа необходимо добавить пользователя IUSR в группу IIS_IUSRS, иначе при попытке публикации 1С на сервер Вы будете получать ошибку
Запускаем оснастку управление компьютером Win+R -> compmgmt.msc или через меню пуск:
В оснастке выбираем: Локальные пользователи и групп -> Группы -> IIS_IUSRS открываем свойства группы двойным щелчком ЛКМ
В эту группу нам необходимо добавить пользователя IUSR, для того чтобы предоставить необходимые права доступа, для этого жмем кнопку Добавить
Набираем имя пользователя IUSR и нажимаем кнопку Проверить имена, если пользователь будет найден, то он станет подчеркнутым, нажимаем ОК. Если пользователь не находится нажмите кнопку Размещение… и смените место поиска.
Проверяем, что наш пользователь появился и жмем ОК
Настройка сайта и приложения в IIS
Запускаем Диспетчер служб IIS удобным для Вас способом, например: Win+R -> InetMgr
В левой части экрана раскрываем ветку с сайтами. Останавливаем сайт по умолчанию Default Web Site или модифицируем его, я предпочитаю делать отдельный.
Жмем ПКМ на сайты и выбираем пункт Добавить веб-сайт
Заполняем параметры сайта
Проверяем, что наш сайт появился и запустился
Вместе с сайтом так же должен был создаться пул приложений с таким же названием.
Переходим выше по ветке в раздел Пулы и приложений и находим наше приложение, в данном случае 1с
Выбираем наш пул приложений 1с и нажимаем в правой части Дополнительные параметры…
Настройка доступа для группы IIS_IUSRS
Настройка необходимого доступа для группы IIS_IUSRS, для корректной работы нашего сайта (1с) и корректной публикации.
Для начала необходимо дать права группе IIS_IUSRS к каталогу в котором находятся (будут находиться) файлы нашего сайта. В нашем примере файлы сайта находятся в C:\inetpub\www\1c.
Переходим в каталог C:\inetpub\www\ -> нажимаем ПКМ на каталоге 1с -> в меню выбираем пункт Свойства -> переходим на вкладку Безопасность -> жмем кнопку Изменить… -> кнопку Добавить… -> в поле вписываем название группы IIS_IUSRS (при необходимости меняем место Размещения) -> нажимаем кнопку Проверить имена.
Если группа найдена она станет подчеркнутой, жмем ОК.
Далее проставляем галочки необходимых прав:
— Чтение и выполнение
— Список содержимого папки
— Чтение
Тоже самое с правами, мы делаем для каталога куда установлена 1с и каталога куда развернута наша файловая база. Если Вы используете базу SQL, то Вам НЕ нужно задавать права на каталог с базой.
Обращаем внимание, что для каталога с базой так же нужны права на запись!
Расположение файловой базы Вы можете посмотреть запустив 1С Предприятие
Публикация 1с
Запускаем 1с Предприятие -> Конфигуратор -> Администрирование -> Публикация на веб-сервере…
Выбираем каталог где будут файлы сайта и жмем Опубликовать
1) Установка IIS выполняется стандартными средствами. Набор достаточных компонент приведен на скриншоте.
2) Создаем папку на web сервере. В моем случае 1С.
3) Публикуем сервис из 1С. Администрирование -> 1С -> Конфигуратор -> Администрирование -> Публикация на Web-сервере.
4) Зададим права для обработчика web-сервисов 1С. Права на запуск (Выполнение) модулей добавляются для группы IIS_IUSRS на папку
C:\Program Files (x86)\1cv8\8.3.4.465\bin.
5) Если база файловая, нужно добавить права на изменение (Изменение) на папку и подпапки базы для той же группы.
6) В консоли IIS. Кликаем правой кнопкой мыши на строку с созданной нами папкой. Преобразовываем её в приложение.
7) Добавляем MIME типы 1С. Делать это можно для сервера или для сайта, или для папки. Наследование присутствует.
8) Добавляем настройки для обработки файлов 1С. На вкладке Сопоставление обработчиков добавляем скрипты (не скрипты со звездочкой) для каждого расширения -"*.1cws" и "*.1crs".
Имена любые. Главное - для каждого расширение отдельное правило! Ограничения запроса -> Доступ -> Сценарий или Выполнение.
9) Для обработчиков нужно задать дополнительные параметры (Edit Feature Permission). Установить флаги запуска скриптов и приложений.
10) Можно проверить наличие обработчика web-сервисов 1С на вкладке ISAPI and CGI Restrictions для сервера.
Так как установка идет в 64 разрядном окружении, то для обработчика нужно включить режим Пулы приложений -> DefaultAppPool -> Дополнительные параметры -> Разрешены 32-разрядные приложения ->True.
12) Об анонимной аутентификации на IIS и доступе к базе. Настроить доступ с использованием автоматически создаваемого пользователя IUSR у меня получилось. Важно проверить, что Анонимная проверка подлинности включена как в корне сервера, ТАК И НА САЙТЕ. Иначе не работает.
Могу ошибаться, но если сначала установить IIS а затем установить модуль расширения веб-сервера 1С, то пункты 6-10 платформа настроит сама, после публикации новой базы так же ничего настраивать не придется.
(1) Saipl, в моем случае (при установке сначала IIS, потом веб-расширение) пункт 10 пришлось сделать в части "Пулы приложений -> DefaultAppPool -> Дополнительные параметры -> Разрешены 32-разрядные приложения ->True."
Автору СПАСИБО!
(24) sidorov8, Так как установка идет в 64 разрядном окружении, то в п. 10 надо всего лишь выбрать другой обработчик - 64-битный wsisapi.dll, находящийся в данном примере по адресу: "C:\Program Files\1cv8\8.3.4.465\bin\wsisapi.dll".
(24) Почему-то если так делаю, то у меня ошибка при входе. Если же нет то и 32-х битная версия 1С запускается нормально
я в какойто момент плюнул настраивать 2012, и установил апач. С ним завелось с полпинка. После этой статьи попробую еще раз, спасибо )
(2)интересно - как у вас, получилось после аача? я вот тоже его поставил, а потом решил IIS , но с первого раз не прошло
(101) в интернетах уже полно разных инструкций как настроить и через апач и через iis. Все просто и элементарно
Публикация Файловлй базы данных.(Бухгалтерия 3.0)
При входе пользователя по опубликованной ссылке стартует масса регламентных заданий в базе (Например загрузка курсов валют или обновление полнотекстового поиска)- которые при отсутствии прав у пользователя под которыми они стартуют приводит к зависанию базы.
P.S.
Попытка открыть обработку "Управление Регламентными заданиями" - вешает сеанс намертво.
Все регламентные задания отрабатывают по умолчанию под "DefaultAppPool".Можно посмотреть по процессу w3wp.exe.
Решение : Для решения проблемы в настройках пула в свойстве "Identity" нужно указать пользователя которому гарантировано будет хватать прав на выполнение всех регламентных задании в приложении + (Доступ к каталогу и ресурсам сети).
Я если честно не до конца понял для чего необходимо добавлять приложение, то окошко где добавляется _1С.
Вообще с IIS очень часто творятся непонятные вещи. Сейчас думаю чтобы продакшин сервер запустить под Апатчем.
(6)Ситуации бывают разные:
а) На предприятии уже установлен IIS - и смысла ставить еще один веб-сервер просто нет.
б) Политика компании нацелена на использование Windows-серверов (а следовательно, и их продуктов).
И покажите мне, пожалуйста, 3 кнопки которыми настраивается Windows аутентификация в Apache. Количество инструкций (и личный опыт) говорит о том, что не все так "трехкнопочно" в этом вопросе..
Статья очень полезная. От себя хочу добавить что всё это лучше делать под правами локального администратора.
Шаг 2,6,7,8,9 можно не делать если запускать 1с для публикации от имени администратора. То есть строка с папкой сама уже будет преобразована в приложение. Делаю на win8.1 64. Но можно ли так делать не будет ли чем то плохо? Почему то самому сделать по инструкции не получается выходят ошибки что писал выше.
Еще для новых публикаций надо заходить в проверку подлинности и включать анонимную проверку подлинности.
(15) TbSasha, Как я понимаю, все зависит от версии 1С и прав, под которыми происходит установка комплекса сервисов и программ. Если шаги уже сделаны, то их и впрямь повторять не нужно. Работает и работает.
Добрый день! есть задача связать 1С и программу документооборота. Программа документооборота будет дергать веб-сервисы 1С, чтобы получать данные из справочников, добавлять записи в справочники.
Возник такой вопрос: как по правильному нужно сделать: для каждого справочника отдельный веб-сервис, или в один веб-сервис все методы для всех справочников?
Аналогично с XDTO, все типы в один ХДТО или в разные?
Волнует вопрос по возможным проблемам: если сломается/сломаю один веб-сервис, то сломается только один справочник, все остальное будет работать.
Чем нужно руководствоваться, какими аргументами?
Спасибо!
А зачем для решения данной задачи дергать веб-сервисы? Может проще подключиться к базе 1с напрямую. Или через синхронизацию.
Я не знаю, почему именно так решили: может быть их система не умеет по другому, или наш программер по этой программе не знает как сделать по другому. Мне поставили задачу. Я хочу сделать по правильному. А как это по правильному?
По веб-сервисам, к сожалению, больше ни чем е помогу - у меня стояла задача опубликовать базу - я ее решил, решением поделился со всеми. Свой же документооборот (на 1с) удачно поженил с бухгалтерией (односторонне, из бух только берем) и несколькими базами на MSSQL и МySQL- чтение и запись.
А кто-нибудь знает где настраивается в IIS такая вещь:
Ситуация: настроено перенаправление с внешнего XXX.XXX.XXX.XXX:9000 на внутренний XXX.XXX.XXX.XXX:80. Опубликован веб-сервис.
Читайте также: