Как перезапустить веб сервер 1с iis
Использование веб-сервера и публикаций информационных баз — один из способов оптимизации 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С компоненты, ничего кроме этого мне не понадобилось пока. Данный набор ставил и на WIN 7 и на WIN10
2. Первоначальная настройка IIS.
2.1. Дать доступ службе IIS к:
- Платформа1С (C:\Program Files (x86)\1cv8),
- База1С тут точного пути, нет у каждого он свой.
Для этого на каждой из папок клацаем правой кнопкой мыши Свойство-Безопасность - Изменить - Добавить -IIS_IUSRS; IUSR и проставить галочки полного доступа. После нажатия на ОК могут появиться ошибки "Отказ в доступе" нажимайте "Продолжить" и все.
2.2. Разрешить IIS работать с 32 битными приложениями.(Этот пункт нужен если у вас WIN 64-битная а 1C 32-битная, поэтому почти всем) Заходим Панель управления - Администрирование -Диспетчер служб IIS,
в открывшемся окне открываем раздел "Пулы приложений" в правом окне находим пул "DefaultAppPool", правой кнопкой мыши - Дополнительные параметры, ну и в открывшемся окне меняем "Разрешены 32-разрядные приложения" в значение "True" а так же проверьте "Версия среды .NET Framework" чтобы стояла либо "v2.0" либо "Без управляемого кода" (разнице не видел а вот v4.0 - не стоит так как будет проблема в формировании отчетов)
3. Публикация базы данных
3.1. Установка платформы обязательно с установленной галочкой "Модуль расширения веб-сервера"
3.2. Запускаем 1С под правами администратора в режиме Конфигуратор - Администрирование - Публикация на веб-сервере.
И все, больше ничего не нужно.
Есть один совет: Если база будет доступна через 1С, нелишнее для обеспечения дополнительной безопасности опубликовывать её с именем, которое будет ничего не значить. Лучше вообще случайным набором букв и цифр (qAdsfslj- например), пользователи, даже если работают через браузер, заходят по ссылке, а вам дополнительное спокойствие, но при таком подходе есть минус, если снял базу с публикации, например, для обновления, то имя будет меняться на наименование папки базы данных, и если не сохранил где-то это имя, то начинаешь искать эту ссылку, и ладно, если баз одна -две, а если их несколько десятков, то можно и перепутать. Попав пару раз, сделал следующим образом "D:\Bases1C\Buh\qAdsfslj" - где "Buh"-название понятное для меня а вот "qAdsfslj"- имя базы при публикации.
Если после установки и настройки IIS + 1C 8.3 (на АПАЧе все работало) внутри локальной сети все хорошо, а при входе через интернет вроде все хорошо, но при формировании табличного документа происходят странные вещи, вместо значков группировок отчета выходит "разорванный листочек", и выделить ячейку в отчете не получается (хотя при двойном нажатии расшифровки работают), а еще на экране нет картинок и штрихкодов в табличном документе (отчете) но если этот же отчет сохранить в эксель или распечатать, все выходит как надо. Значит, вы "попали" так же как и я (искал решение очень долго, почему и пишу данную статью).
Перепробовал все предложенные варианты настроек в интернете, не помогло, сменил Windows (7,10, 2008), компьютер, версии 1C и IIS (7.0, 7.5, 10) не помогает. При этом нужно учесть еще и такой момент что в этой же сети уже работает один сервер IIS+1С и там все работает как надо.
А дело было в том, что после того, как я запускал сервер, я тут же делал проброс порта через роутер наружу и поскольку уже имелся сервер работающий по 80 порту, пробрасывал на альтернативный (444, 98, 90, и тд. переустановок было много). и получал печальный результат. А нужно было сначала сделать прямой проброс 80-80 зайти в 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 у меня получилось. Важно проверить, что Анонимная проверка подлинности включена как в корне сервера, ТАК И НА САЙТЕ. Иначе не работает.
После установки 1С необходимо убедиться что сервер 1С запущен. Автор обычно запускает сервер вручную. Но если вы уверены что сервер 1С запущен, то этот шаг делать не надо.
1.2. Зарегистрировать кластер 1С
Запустить утилиту администрирования серверов 1С:
В открывшемся окне зарегистрировать новый центральный сервер 1С предприятия:
В появившемся окне ввести сетевое имя компьютера, на котором запущен 1С Сервер (или его IP-адрес):
1.3. Зарегистрировать базу 1С на сервере SQL
Для начала регистрации базы необходимо запустить приложение 1С. В появившемся окне "Запуск 1С:Предприятия" регистрируем новую базу нажатием на кнопку "добавить":
Выбираем "Создание новой информационной базы":
В появившемся окне есть возможность создать базу из шаблона, или создать новую пустую базу (в последствии можно будет загрузить базу, загрузить конфигурацию или создать свою конфигурацию):
Жмем кнопку далее, вводим название базы и тип расположения базы на сервере:
жмем далее и заполняем поля:
При этом необходимо заметить, что поле "Имя базы данных" - это названия базы на SQL сервере. А поле "Имя информационной базы" - название базы на сервере 1С.
После чего выбираем вариант аутентефикации в 1С (Выбирать автоматически) и жмем кнопку "Готово":
1.4. Загрузить или создать конфигурацию 1С
Запустить конфигуратор с базой:
Загрузить ранее выгруженную информационную базу:
2. Настройка IIS на сервере
2.1. Проверка установленных компонент IIS
Для работы веб-клиента 1С:Предприятия необходимы службы IIS, которые небыли установлены по умолчанию при установке Windows 8.1 x64.
Для их установки следует перейти "Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов Windows". В появившемся дереве, в ветке "Службы IIS – Службы интернета - Компоненты разработки приложений" отметить все компоненты, как показано на рисунке. Затем нажать кнопку "Ок":
2.2. Разрешение 32-разрядных приложений в пуле приложений
Веб-клиент 1С:Предприятия 8.3 является 32-разрядным приложением. Поэтому для 64-разрядной ОС необходимо разрешить работу оных в пуле приложений сервера IIS. Для этого необходимо перейти "Пуск - Панель управления – Администрирование – Диспетчер служб IIS". В диспетчере служб выбрать "Пулы приложений – DefaultAppPool – Дополнительные параметры". В списке дополнительных параметров переменной "Разрешены 32-разрядные приложения" установить значение "True":
Установить значение в True для параметра "Разрешены 32-разрядные приложения":
2.3. Установка удостоверения пула приложений в качестве удостоверения анонимного пользователя
По умолчанию в качестве анонимного пользователя установлен пользователь IUSR, которого нет в системе. Дабы не создавать оного можно просто включить удостоверение пула приложений в качестве удостоверения анонимного пользователя. Для этого необходимо перейти "Пуск - Панель управления – Администрирование – Диспетчер служб IIS". В диспетчере служб перейти в "Проверка подлинности:
На пункте "Анонимная проверка подлинности" вызвав контекстное меню "изменить":
В открывшемся диалоге отметить "Удостоверение пула приложений". Закрыть диалог, нажав кнопку "ОК".
3. Публикация WEB-приложения из 1С
Для публикации приложения необходимо иметь полный доступ на папку проектов IIS. Есть 2 способа публикации приложения из 1С. 1 - сначала создать необходимую папку в каталоге "C:\inetpub\wwwroot\" в нашем случае это папка с названием "Base1C" и дать права текущему пользователю на полный доступ на эту папку. 2 способ зайти в 1С из под администратора а потом дать необходимые права на папку уже опубликованного приложения. В э статье описан второй путь.
3.1. Для публикации конфигурации на сервере IIS необходимо запустить 1С из под администратора:
Вызываем контекстное меню на ярлыке 1С и выбераем "Запуск от имени администратора"
Выбираем базу и запускаем 1С в режиме конфигуратора:
3.2. Запустить публикацию на web-сервере
Для начала публикации переходим в меню "Администрирование - Публикация на веб-сервере":
В появившемся окне указать имя публикации, указать веб-сервер и указать путь на веб-сервере.
1С позволяет публиковать на любой доступный веб-сервер в сети с помощью утиллиты webinst. В статье использовался пример публикации на локальный компьютер:
Более подробную информацию по пунктам в окне публикации можно получить из 1С конфигуратора нажав на кнопку F1.
4. Настройка библиотек для работы в 64-х разрядной ОС
После публикации на веб-сервере из конфигуратора, в случае использования 64-х разрядной операционной системы на компьютере который используется в качестве сервера IIS, необходимо настроить работу с библиотеками 1С. Это делается каждый раз после публикации на веб-сервере.
Для настройки библиотек необходимо выполнить следующие действия.
Открываем через Панель Управления - Администрирование Диспетчер служб IIS.
В открывшемся окне раскрываем группу "Сайты" и наш сайт (в примере Base1C).
Нажимаем на "Сопоставление обработчиков" в группе IIS:
В открывшемся окне ищем строку с именем "ISAPI-dll" и нажимаем пункт меню в действиях "Добавить сопоставление сценария. "
В открытом окне "Добавление сопоставления сценария" в поле "Путь запроса" ввести символ * (звездочка, т.е. все). В поле "Исполняемый файл" выбрать библиотеку wsisapi.dll с каталога установленной 32-х разрядной версии 1С. В поле "Имя" можно задать любое имя (в примере Имя = 1С):
Некоторые специалисты в других статьях указывают что надо отключить ограничение сопоставления запроса. Автор не нашел зависимости работы этой отметки для программы 1С. Данная информация приводиться информативно, может быть кому то понадобиться.
Настроить ограничения запроса можно нажав на кнопку "Ограничение запроса" в окне Добавление сопоставления сценария. В открывшемся окне убрать отметку с "Вызывать обработчик только при сопоставлении запроса с:":
Нажать кнопку Ok.
На появившейся вопрос ответить "Да":
После чего необходимо перезапустить службу IIS. Для этого необходимо перейти в корень панели "Подключения" (на название сервера) и в меню действия справа выбрать "Перезапустить":
После чего можем проверить, работает ли подключенная библиотека. Для этого переходим в "Ограничения ISAPI и CGI":
И посмотреть, есть ли ссылки для необходимых обработчиков (dll):
Еще раз следует отметить, что данную процедуру настройки библиотек следует делать каждый раз после публикации приложения из 1С.
5. Настройка прав доступа на папки и Брандмауэра Windows
5.1. Настройка доступов к папкам
Для правильной работы всех пользователей, а не только администраторов с опубликованным веб-приложениям необходимо настроить некоторые права на папки.
Для настройки прав на пакпи необходимо в проводнике Windows вызвать контекстное меню для необходимой папки и выбрать в контекстном меню пункт "Свойства" и перейти на закладку "Безопасность"
В данном случае речь идет о правах на 3 папки:
1. "C:\Program Files (x86)\1cv8\8.3.5.1088\bin\" (в этой папке находится библиотека wsisapi.dll) (номер релиза "8.3.5.1088" может быть другой)
2. C:\inetpub\wwwroot\Base1C (это созданная нами папка которая будет использоваться для доступа из интернет)
3. КаталогБазы (это база 1С, если используется файловый тип базы), в нашем примере база храниться на SQL сервере, поэтому каталога базы нет и доступа на него давать не надо.
Для всех папок (Пункты: 1,2,3) необходимо для пользователя IIS_IUSRS установить доступ "Полный доступ":
Для папки с нашей базой (Пункт 3) данных для пользователя Users, установить доступ "Изменение".
5.2. Настройка доступов к портам в Брандмауэре Windows
Если планируется использовать web-доступ не только локально, то необходимо настроить Брандмауэр Windows для доступа с внешних ресурсов, указав порт доступа 80. Автор не использовал настроек брандмауэра, а просто отключил его:
6. Доступ к опубликованной информационной базе
Для доступа к информационной базе надо зайти в обозреватель интернет (поддерживающий HTML5, например "многими любимый" Internet Explorer) и ввести в адресную строку:
7. Используемые ресурсы
By Rahul February 25, 2015 2 Mins Read Updated: May 6, 2020
We have two options to Start, Stop to Restart IIS service on windows. You can do it directly from the Windows services center or you can do it directly via the command line.
To do this you must have Administrative access to your system. Open Windows command prompt “run as Administrator” and follow the below instructions.
If you are directly logged in with the Administrator account you can run the same commands through run Window in your Windows system.
1. Start IIS via Command Line
Use following command to start IIS service on Windows operating systems. Either use Windows command prompt to run this command or execute it from run window.
To start IIS on command line, Open terminal and type:
Press WIN + R to open Run window. Type the same command on run window and press enter:
2. Stop IIS via Command Line:
Use following command to stop IIS service on Windows operating systems. Either use Windows command prompt to run this command or execute it from run window.
To stop IIS on command line, open terminal and type:
Press WIN + R to open Run window. Type the same command on run window and press enter:
3. ReStart IIS via Command Line:
Use the following command to restart IIS service on Windows operating systems. Either use the Windows command prompt to run this command or execute it from the run window.
Default iisreset command restarts the IIS service. So you don’t need to provide /restart parameter option to iisreset command to restart IIS service.
To restart IIS on command line, open terminal and type:
Press WIN + R to open Run window. Type the same command on run window and press enter:
Related Posts
How to Setup Let’s Encrypt SSL in Windows IIS
How to Start and Stop All Sites in IIS
How to Setup Reverse Proxy on IIS with URL-Rewrite
How to Enable URL Rewrite in IIS
How To Install IIS on Windows 10
6 Comments
Prathima (or anyone curious about the same), hope you’ve gotten your answer by now.
But if not…
You’ll need to write a small script that runs the iisreset command. Just a quick line or two like this will work:
@echo off
c:\Windows\system32\iisreset.exe /restart
Another script could check on the status of the web server periodically, seeking a specific page. You can even target one that’s not publicly linked, such as
/TellMeWhenThisSiteIsDown.html
Put the web check script in your Task Scheduler. Once an hour, every five minutes, whatever. If the page loads properly, the script exits; if it finds errors, it then runs the restart script.
A “quick and dumb” way to do this would be to simply run the restart script each day when you expect no clients (e.g. 3am).
The disadvantage of course is that it would disconnect / log out anyone who happened to be visiting at the time of the restart (INCLUDING other automated processes relying on the web server), which is of course not ideal. But it also can be written, scheduled, and done in two minutes. So for a low-volume site that still needs to remain available… it’s an option.
Your picture under “Stop” and “Start” are backwards (they don’t sync with the text)
How we can stop remotely from other server as a batch or powershell ?
Thanks a lot, it saved my day 🙂
I can’t start my wampp server because it’s IIS service still online.
Hi ,
Can you please help me is there a way to automate this process to perform iisreset when one of the services is down ?
Читайте также: