Часто возникает ситуация, когда на одном веб-сервере IIS опубликовано несколько баз 1С. При этом некоторые из них требуют круглосуточного доступа (режим 24/7), а другие необходимо регулярно обновлять (например, по выходным или ночью). Проблема в том, что при стандартном подходе для обновления базы приходится останавливать весь сервер IIS, что приводит к отключению пользователей от круглосуточной базы. Разберем по шагам, как грамотно организовать архитектуру публикаций, чтобы базы работали независимо, и выясним причину появления ошибки веб-клиента «Неправильный запрос».
Если вы попытались разнести базы по разным сайтам в IIS (создали сайт, отличный от Default Web Site), то при определенных действиях пользователей (например, при проведении документов) в браузере может появляться ошибка с текстом «Неправильный запрос».
Проанализируем причину. Под капотом это стандартная ошибка протокола HTTP — 400 Bad Request. Техническая суть кроется в том, что когда внутри 1С на сервере происходит штатное исключение (например, не заполнено обязательное поле), веб-сервер IIS по умолчанию перехватывает этот ответ 1С и пытается подставить вместо него свою стандартную HTML-страницу с ошибкой. Тонкий или веб-клиент 1С не умеет читать такие HTML-ответы, поэтому просто выводит заглушку «Неправильный запрос».
Посмотрим, как исправить эту проблему со стороны настроек IIS:
После этих настроек IIS перестанет подменять ответы веб-расширения 1С, и платформа начнет корректно отображать пользователям понятные диалоговые окна с текстами исключений.
Создание отдельного сайта для каждой базы — это рабочий, но не самый оптимальный метод. Рассмотрим более правильный и гибкий подход. Архитектура IIS позволяет использовать Пулы приложений (Application Pools). Именно они предназначены для изоляции процессов.
Разберем подробнее, как это работает:
w3wp.exe.В результате база, которая работает 24/7 и привязана к другому пулу приложений, продолжит свое функционирование без малейших обрывов связи.
Если вы разносите публикации по нестандартным пулам и сайтам, проанализируем частые подводные камни, связанные с правами и разрядностью платформы.
Права на папку публикации:
Убедитесь, что у системной группы IIS_USERS (или у пользователя IUSR) есть полные права (Чтение, Выполнение, Запись, Изменение) на физический каталог, где лежит публикация вашей базы. В этом каталоге находятся файлы default.vrd и web.config. Недостаток прав приведет к невозможности запуска веб-клиента.
Разрядность платформы (32/64 bit):
Если вы используете 32-разрядную версию платформы 1С:Предприятие на 64-разрядной операционной системе Windows Server, вам потребуется дополнительная настройка пула:
True.Если пропустить этот шаг для 32-битной 1С, база выдаст критическую ошибку HTTP 500 (Internal Server Error) при попытке входа.
Посмотрим на другие варианты решения задачи, если возможности IIS вас не устраивают:
RAC) и устанавливайте блокировку начала новых сеансов.