Мы описывали как настраивать веб-публикацию на IIS в инструкции.
Но после настройки веб-публикации при подключении к базе может возникать ошибка “Ошибка HTTP 500.0 — Internal Server Error”.
Если модуль был установлен с 32-битного клиента, то требуется это указать в пуле приложений. Для этого мы делаем следующую настройку:
- Заходим в Панель управления → Администрирование → Диспетчер служб IIS.
- Выбираем Пулы приложения которые задействованы в веб-публикации, в нашем случае DefaultAppPool.
- Нажимаем ПКМ Дополнительные параметры.
- В строке Разрешены 32-разрядные приложения мы указываем True как на Рисунке 1.
- Нажимаем ОК.
Рисунок 1 — Дополнительные параметры пула приложений
Если не сработало, есть следующие возможные решения:
- Убедитесь, что разрешения NTFS для файла web.config верны и обеспечивают доступ к учетной записи компьютера веб-сервера. Заходим в директорию, где размещена публикация (по умолчанию — C:\inetpub\wwwroot\ИМЯ_БАЗЫ). Нажимаем ПКМ на web.config → Свойства → Безопасность. Убедитесь в том, что у группы IIS_USERS есть права на чтение, выполнение, запись и изменение файла. Если нет — нажмите кнопку Изменить, в появившемся окне Добавить → Дополнительно и найдите в списке IIS_USERS. Добавьте эту группу и назначьте соответствующие права.
- Проверьте журналы событий, чтобы посмотреть, была ли зафиксирована какая-либо дополнительная информация. Открываем Выполнить (ПКМ на кнопку меню пуск или сочетанием клавиш Win+R), вводим “eventvwr.msc”, нажимаем Enter. Возможно, журнал даст подсказку какой компонент может сбоить.
- Переустановите компонент IIS на сервере. В диспетчере серверов удалите роль Веб-сервера IIS, перезагрузите сервер, а затем установите заново через оснастку Добавить роли и компоненты.
- Установите компонент расширения .NET, если запрос сопоставлен управляемому обработчику.
В Windows Server 2012 и младше: заходим в Диспетчер серверов → Добавить роли и компоненты → Роли сервера → Веб-сервер (IIS) → Веб-сервер → Разработка приложений → Расширяемость .NET. Далее идём далее по указаниям системы.
После применения настроек, мы можем подключаться к настроенной веб-публикации без ошибок.
Нужна готовая настройка веб-доступа к 1С? Попробуйте наш сервер 1С в аренду, в услугу включены все настройки и обслуживание.
Проблема
Эта ошибка возникает после того как Вы опубликуете информационную базу на IIS. Вот она:
Причина и устранение ошибки
Вообще, надо понимать, что ошибка: Ошибка HTTP 500.0 — Internal Server Error говорит нам о том, что дело в самом web-сервере, а не в 1С. Это первое.
Второе. Сама ошибка в купе с 1С скорее всего означает, что Internet Information Services (оно же IIS) в 64-разрядной среде запрещен запуск 32-разрядных приложений. Чтобы успешно выполнить публикацию баз 1С на сервере IIS, необходимо в настройках диспетчера служб IIS разрешить запуск таких приложений.
Для этого выполните Win+R > inetmgr.exe. Далее, разверните «Локальный компьютер», в нем «Пулы приложений», щелкните правой кнопкой мыши по DefaultAppPool «Дополнительные параметры».
Изменив эту настройку и нажав «ОК» 1С начнет нормально работать.
Основатель и директор по развитию Софтонит. Практикующий руководитель разработки. Эксперт в области автоматизации техподдержки
Internet Information Services (IIS) довольно капризный веб — сервер, его настройка сложнее Apache и при его работе чаще возникают проблемы и ошибки, но он позволяет обеспечить хорошую производительность работы программных продуктов на платформе 1С, работающих через веб — клиент. Маленькие организации могут использовать IIS как замена серверу 1С.
В этой статье я постарался собрать все проблемы и решения ошибки:
HTTP Error 500.0 - Internal Server Error
There is a problem with the resource you are looking for, so it cannot be displayed.
Module IsapiModule
Notification ExecuteRequestHandler
Handler 1C Web-service Extension
HTTP: Internal Server Error
Ошибка работы с ресурсом
Проблема 1. 32 –разрядная платформы 1С
Если у вас ОС Windows 64 – разрядный, а платформу 1С вы используете 32 битную, я рекомендую поставить 64 и повторно опубликовать базу через конфигуратор, предварительно указав в настройках списка баз вариант запуска информационной базы.
Если вы все же решили использовать 32 битную версию платформы, надо установить настройку «Разрешены 32-разрядные приложения» в значение True в параметрах пула приложений
Проблема 2. Путь к библиотеке wsisapi.dll
Бывает так, что указан ошибочной путь к разрядности или версии платформы. Проверьте адрес библиотеки wsisapi.dll в файле C:\inetpub\wwwroot\<Имя вашей публикации>\web.config
Проблема 3. Старый компонент Microsoft Visual C++
Установите свежую версию библиотеки Visual C++. Скачать можно официального сайта Microsoft
https://support.microsoft.com/ru-ru/help/2977003.
Проблема 4. Использование разных версий платформ в опубликованных базах
Если вам надо опубликовать базы на разных версиях, создайте новый Пул приложений и укажите его в основных настройках публикации.
Проблема 5. Права доступа к файлам 1С
Группы пользователей IUSR и IIS- IUSRS должны иметь доступ к папкам с установленной платформой, а так же к самой информационной базе .
PS
Если вам не помог совет, напишите об этом в комментариях )
Использование веб-сервера и публикаций информационных баз — один из способов оптимизации 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)\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.
Пример с более подробным описанием — установка веб-сервера 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 — Дополнительные параметры — Общие ↴
Настройка режима управляемого конвейера
V. Работа IIS с разными релизами платформ 1С
Частный вариант. Установлены два сервера 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-битных приложений отключена.
Мар
20
При последнем обновлении платформы 1C и замене 32х битного сервера приложений на 64х битный, столкнулся с проблемой WEB морды: Ошибка HTTP 500.0 — Internal Server Error
Ошибка HTTP 500.0 — Internal Server Error
В чём дело то ? Остановил 32х битный сервер, запустил 64х битный сервер приложений и на тебе.
Полез разбираться. Предположительно, проблема кроется в самом IIS. Если подумать логически, то при смене разрядности сервера запускаются 64х битные приложения от самой 1с. Надо IIS разрешить обрабатывать такие DLL.
Куда лезть, что копать ? Для начала проверим стартовую страницу самого IIS — Default Web Site
Default Web Site — работает и это замечательно ) понятно что IIS исправен.
Что отвечает за работу приложений в разных разрядностях на опубликованных сайтах 1с на сервер IIS ?
Да, это DefaultAppPool. Заходим: Пулы приложений, выбираем DefaultAppPool, с правой стороны — дополнительные параметры.
Строка: Разрешены 32-разрядные приложения стоит TRUE (правда), а не правда. Ставим не правду FALSE.
Ок, закрываем, перегружаем IIS. Проверяем публикацию.
ТАДААААМ!!! прекрасно. Наша — Ошибка HTTP 500.0 — Internal Server Error нас отпустила )
Подводим итоги:
Для запуска опубликованного 1с на IIS при смене разрядности сервера приложений 1с необходимо:
- Изменить в настройках IIS , Пулы приложений, DefaultAppPool.
- Заменить: Разрешены 32-разрядные приложения с TRUE на FALSE.
Всем приятной работы и хорошего настроения.