При переходе на новые версии платформы 1С:Предприятие 8.3 пользователи часто сталкиваются с ситуацией, когда база данных прекрасно открывается через любой веб-браузер, но при попытке зайти через тонкий клиент возникает ошибка: «Ошибка HTTP при обращении к серверу: Failure when receiving data from the peer». Эта проблема особенно актуальна для систем, использующих защищенное соединение (HTTPS) и публикацию на веб-сервере IIS.
Рассмотрим подробнее причины возникновения этой ошибки и разберем по шагам алгоритм её устранения, основываясь на системном подходе к администрированию веб-серверов и платформы 1С.
Для диагностики соединения можно использовать сторонние инструменты, такие как Python-коннектор к 1С, позволяющий проверить доступность базы по HTTP.
Прежде всего проанализируем ситуацию. Браузер использует стандартные механизмы работы с HTTP/HTTPS-трафиком, которые глубоко интегрированы в операционную систему. Тонкий клиент 1С — это самостоятельное приложение, которое предъявляет более жесткие требования к стабильности соединения, проверке сертификатов и объему передаваемых данных в POST-запросах. Ошибка Failure when receiving data from the peer буквально означает, что удаленный узел (сервер IIS) разорвал соединение в момент передачи или приема данных, не завершив операцию.
Одной из наиболее частых причин является конфликт разрядности (x86 и x64). При установке новой версии платформы (например, 8.3.20 и выше) важно убедиться, что модуль расширения веб-сервера соответствует настройкам пула приложений в IIS. Разберем этот момент подробнее:
DefaultAppPool или созданный вручную пул).Если вы используете 64-битную платформу 1С, этот параметр должен быть установлен в значение False. Если же публикация выполнена через 32-битную версию wsapvr.dll, значение должно быть True. Несоответствие приводит к падению рабочего процесса w3wp.exe при попытке обработки запроса от тонкого клиента (также не забудьте про лицензию разработчика на сервере).
Проанализируем ситуацию, когда на одном сервере опубликовано несколько баз, работающих на разных версиях платформы (например, как в сообщениях форума: 8.3.23 и 8.3.24). IIS может запутаться в версиях библиотек. Нам необходимо убедиться, что для каждой конкретной базы прописан путь к «своей» папке bin, а для управления ими пригодится консоль кластера серверов любых версий.
Проверим настройки в IIS для конкретного приложения (базы):
1C Web-service Extension (обычно это файлы с расширением .1cws или .1crs).bin той версии платформы, которая предназначена для этой базы. Например: "C:\Program Files\1cv8\8.3.24.1667\bin\wsapvr.dll".Если используется защищенное соединение (HTTPS), тонкий клиент крайне чувствителен к цепочке доверия сертификатов. В сообщении 7 упоминалось копирование файла cacert.pem. Посмотрим на этот процесс критически.
Файл cacert.pem, находящийся в папке bin платформы, содержит список доверенных корневых центров сертификации. При простом копировании из старой версии в новую могут возникнуть проблемы, если формат файла или требования платформы изменились. Рассмотрим правильный порядок действий:
cacert.pem, попробуйте добавить данные вашего сертификата в конец нового файла cacert.pem, который идет в комплекте с установленной платформой.Тонкий клиент передает данные в формате, который IIS может посчитать подозрительным из-за большого объема POST-запросов. По умолчанию в IIS установлено ограничение на размер передаваемого контента около 30 МБ. Выясним, как это изменить.
Необходимо отредактировать файл web.config, который находится в папке с публикацией базы (там же, где файл default.vrd). Добавим или изменим следующие параметры:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
В данном примере мы установили лимит в 100 МБ. Это позволит тонкому клиенту передавать тяжелые пакеты данных без разрыва соединения со стороны веб-сервера.
Часто при установке новой версии платформы системные администраторы забывают выдать права на новую директорию установки для пользователя, от имени которого работает IIS. Разберем, кому нужны права:
IIS AppPool\ИмяПула или IUSR).C:\Program Files\1cv8\8.3.X.X\ (включая все вложенные папки и файлы).Если вышеуказанные шаги не помогли, нам нужно «увидеть» момент падения. Ошибка Failure when receiving data часто сопровождается аварийным завершением процесса w3wp.exe. Посмотрим логи:
Application Error или IIS-W3SVC-WP.backend.dll или 1c-iis-extension). Это поможет сузить круг поиска до конкретной проблемы в коде или конфигурации.Проанализируем еще два редких, но важных фактора:
::1. Попробуйте в настройках подключения тонкого клиента указать явный IPv4 адрес сервера вместо его сетевого имени.w3wp.exe и проверить работу.Таким образом, решение проблемы Failure when receiving data from the peer требует комплексного подхода: от проверки разрядности процессов до тонкой настройки лимитов IIS и прав доступа. Последовательное выполнение этих шагов позволяет восстановить работу тонкого клиента в кратчайшие сроки.