Мы описывали как настраивать веб-публикацию на IIS в инструкции.
Но после настройки веб-публикации при подключении к базе может возникать ошибка “Ошибка HTTP 500.0 — Internal Server Error”.
Если модуль был установлен с 32-битного клиента, то требуется это указать в пуле приложений. Для этого мы делаем следующую настройку:
- Заходим в Панель управления → Администрирование → Диспетчер служб IIS.
- Выбираем Пулы приложения которые задействованы в веб-публикации, в нашем случае DefaultAppPool.
- Нажимаем ПКМ Дополнительные параметры.
- В строке Разрешены 32-разрядные приложения мы указываем True как на Рисунке 1.
- Нажимаем ОК.
Рисунок 1 — Дополнительные параметры пула приложений
Если не сработало, есть следующие возможные решения:
- Убедитесь, что разрешения NTFS для файла web.config верны и обеспечивают доступ к учетной записи компьютера веб-сервера. Заходим в директорию, где размещена публикация (по умолчанию — C:inetpubwwwrootИМЯ_БАЗЫ). Нажимаем ПКМ на 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:inetpubwwwroot<Имя вашей публикации>web.config
Проблема 3. Старый компонент Microsoft Visual C++
Установите свежую версию библиотеки Visual C++. Скачать можно официального сайта Microsoft
https://support.microsoft.com/ru-ru/help/2977003.
Проблема 4. Использование разных версий платформ в опубликованных базах
Если вам надо опубликовать базы на разных версиях, создайте новый Пул приложений и укажите его в основных настройках публикации.
Проблема 5. Права доступа к файлам 1С
Группы пользователей IUSR и IIS- IUSRS должны иметь доступ к папкам с установленной платформой, а так же к самой информационной базе .
PS
Если вам не помог совет, напишите об этом в комментариях )
|
|||
TDI
19.11.20 — 13:23 |
Веб сервер — ISS И точно эта же база, на другом сервере тоже работает корректно (т.е. ошибка не должна быть в компиляции). В чём может быть дело ? |
||
lodger
1 — 19.11.20 — 13:29 |
смотри свойства конкретного узла(базы) конкретного инстанса IIS. |
||
Kongo2019
2 — 19.11.20 — 13:31 |
(0) Это явно что-то с 1С. |
||
TDI
3 — 19.11.20 — 13:37 |
(1) |
||
Fragster
4 — 19.11.20 — 14:01 |
ошибка 500 — это ошибка кода 1с (либо компиляции модуля) |
||
Fragster
5 — 19.11.20 — 14:01 |
еслита жебаза на другом сервере работает — то ошибка компиляции менее вероятна (но также возможна) |
||
TDI
6 — 19.11.20 — 14:05 |
(5) |
||
strrike
7 — 19.11.20 — 14:05 |
https://softonit.ru/articles/1c/http500-iis-1c/ |
||
TDI
8 — 19.11.20 — 14:08 |
(7) |
||
strrike
9 — 19.11.20 — 14:09 |
на этом же сервере? |
||
TDI
10 — 19.11.20 — 14:09 |
(9) |
||
RetardedToBoot
11 — 19.11.20 — 14:11 |
У меня иногда веб-сервер вешался, когда в 1с были ошибки. Один из вариантов, это бесконечные циклы. И тогда до бесконечности все остальные ждут ответа от сервера. Веб-сервис однопоточный. А другой из вариантов, это рекурсии или что-то еще, что до бесконечности хавает память. Тогда веб-сервис просто вешался. |
||
strrike
12 — 19.11.20 — 14:12 |
базы серверные, сервер х64? |
||
Дык ё 13 — 19.11.20 — 15:34 |
(10) включи подробные сообщения в параметрах страниц ошибок |
TurboConf — расширение возможностей Конфигуратора 1С
Ошибка 405 и 500 в HTTP сервисе 1С. Поиск и устранение.
Добрый день, хотел поделиться с вами результатом преодоления этих ошибок при работе с http сервисами 1С. С данной ошибкой мне пришлось столкнуться при переписывании мобильного приложения с web сервисов на http. Ошибка возникала при отправке http сервису POST запроса.
Ошибка 405
При работе с некорректным HTTP сервисом из мобильного приложения возвращалась ошибка 405, которая указывает на конкретную проблему. «405 Method Not Allowed — указанный клиентом метод нельзя применить к текущему ресурсу.» Долго не мог разобраться с данной ошибкой, так как в сервисе запрос был разрешен и шаблоны были настроены корректно.
Ошибка 500
При работе с некорректным HTTP сервисом из внешних программ возвращалась ошибка 500, которая ни о чем конкретном не говорит. «500 Internal Server Error — любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса».
Вроде HTTP сервис один, а при использовании запросов к нему из разных программ возвращались разные ошибки.
Расследование ошибок 405 и 500 в HTTP сервисе 1С
Времени на выяснение причин ушло очень много. За несколько дней до этой задачи мною были проведены десятки экспериментов по сборке и настройке web сервера apache 2.4 x64 SSL для работы с 1С. Все настройки в основном были связаны с кросс доменными запросами из web приложения на javascript. Столкнувшись с ошибками 405 и 500 на другом проекте я сразу полез в дебри конфигурации apache. После полного удаления apache поставил IIS и на нем вышла такая же ошибка. Поднял на виртуальной машине чистую систему, попробовал apache и iss, но ошибка так и проявлялась. Потом я вспомнил, что одна функция мобильного приложения уже давно использует http сервис и там все прекрасно работает. Создал http сервис с базовыми настройками и все заработало.
Как только я переносил код из web сервиса в функции http сервиса, сразу появлялись ошибки. Самое интересное, что отладка не срабатывала, т.е. POST запрос в пустую функцию приходил и отрабатывал, а в функцию с кодом нет.
На многих форумах ошибку 405 описывают как ошибку доступа, либо не корректную настройку http сервиса.
Итог разбора ошибок 405 и 500 в HTTP сервисе 1С.
В итоге все оказалось довольно просто. Функция, которая вызывалась внутри функции http сервиса 1с не могла быть вызвана из данного модуля. Странно, что при сохранении конфигурации никакой ошибки на вызов отсутствующей функции не было. Возможно это глюк версии платформы и будет доработан. При использовании web сервисов, даже если код внутри функции был не корректный, отладка работала. В http сервисе сразу идет возврат с ошибками 405 или 500.
P.S. В последней версии платформы ошибка 405 перестала выходить.
Обновление 12.01.2019
В процессе работы часто приходится сталкиваться с ошибками 405 и 500 в HTTP сервисах. Но проблема в 99% случаев в коде сервиса. Возможно это не явно, код вас может уводить глубоко в другие модули, но решение надо искать именно там.
Сейчас у меня такие ошибки начинают и в рабочих проектах. Стоит только внести небольшое изменение которое вызывает исключительную ситуацию, как вы получите ошибку 500. Мобильный клиент ведет себя еще более странно и отловить реальную ошибку очень тяжело, особенно когда переделывает чужие формы под мобильный клиент.
В данный момент я начинаю с того, что отключаю вызов всех функций и процедур начиная со входа в обработчики HTTP сервиса и смотрю как проходят запросы. Если все хорошо, то я начинаю включать код небольшими кусочками и проверять работу сервиса. Данный метод не самый быстрый, но дает 100% результат.
Если у вас остались вопросы, то вы можете задать мне их в социальных сетях или оставить комментарий ниже.