Почему тонкий клиент 1С не подключается к базе через IIS и как исправить ошибку Failure when receiving data from the peer

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе на новые версии платформы 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) разорвал соединение в момент передачи или приема данных, не завершив операцию.

Шаг 1. Проверка разрядности платформы и пулов приложений IIS

Одной из наиболее частых причин является конфликт разрядности (x86 и x64). При установке новой версии платформы (например, 8.3.20 и выше) важно убедиться, что модуль расширения веб-сервера соответствует настройкам пула приложений в IIS. Разберем этот момент подробнее:

  1. Откроем Диспетчер служб IIS.
  2. Перейдем в раздел Пулы приложений.
  3. Найдем пул, на котором опубликована проблемная база (например, DefaultAppPool или созданный вручную пул).
  4. Нажмем Дополнительные параметры.
  5. Проверим параметр Разрешить 32-разрядные приложения (Enable 32-Bit Applications).

Если вы используете 64-битную платформу 1С, этот параметр должен быть установлен в значение False. Если же публикация выполнена через 32-битную версию wsapvr.dll, значение должно быть True. Несоответствие приводит к падению рабочего процесса w3wp.exe при попытке обработки запроса от тонкого клиента (также не забудьте про лицензию разработчика на сервере).

Шаг 2. Настройка сопоставления обработчиков (Handler Mappings)

Проанализируем ситуацию, когда на одном сервере опубликовано несколько баз, работающих на разных версиях платформы (например, как в сообщениях форума: 8.3.23 и 8.3.24). IIS может запутаться в версиях библиотек. Нам необходимо убедиться, что для каждой конкретной базы прописан путь к «своей» папке bin, а для управления ими пригодится консоль кластера серверов любых версий.

Проверим настройки в IIS для конкретного приложения (базы):

  1. Выберем базу в дереве сайтов IIS.
  2. Откроем Сопоставление обработчиков (Handler Mappings).
  3. Найдем обработчик 1C Web-service Extension (обычно это файлы с расширением .1cws или .1crs).
  4. Убедимся, что путь к исполняемому файлу ведет именно в каталог bin той версии платформы, которая предназначена для этой базы. Например: "C:\Program Files\1cv8\8.3.24.1667\bin\wsapvr.dll".

Шаг 3. Решение проблем с SSL и файлом сертификатов cacert.pem

Если используется защищенное соединение (HTTPS), тонкий клиент крайне чувствителен к цепочке доверия сертификатов. В сообщении 7 упоминалось копирование файла cacert.pem. Посмотрим на этот процесс критически.

Файл cacert.pem, находящийся в папке bin платформы, содержит список доверенных корневых центров сертификации. При простом копировании из старой версии в новую могут возникнуть проблемы, если формат файла или требования платформы изменились. Рассмотрим правильный порядок действий:

  1. Убедимся, что ваш SSL-сертификат (например, самоподписанный или от внутреннего ЦС) добавлен в системное хранилище сертификатов Windows на стороне сервера и на стороне клиента.
  2. Вместо копирования старого файла cacert.pem, попробуйте добавить данные вашего сертификата в конец нового файла cacert.pem, который идет в комплекте с установленной платформой.
  3. Проверьте версию протокола TLS. Современные версии 1С по умолчанию требуют TLS 1.2 или TLS 1.3. Если сервер настроен на работу только со старыми протоколами, соединение будет сброшено.

Шаг 4. Увеличение лимитов фильтрации запросов

Тонкий клиент передает данные в формате, который IIS может посчитать подозрительным из-за большого объема POST-запросов. По умолчанию в IIS установлено ограничение на размер передаваемого контента около 30 МБ. Выясним, как это изменить.

Необходимо отредактировать файл web.config, который находится в папке с публикацией базы (там же, где файл default.vrd). Добавим или изменим следующие параметры:


<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="104857600" />
    </requestFiltering>
  </security>
</system.webServer>

В данном примере мы установили лимит в 100 МБ. Это позволит тонкому клиенту передавать тяжелые пакеты данных без разрыва соединения со стороны веб-сервера.

Шаг 5. Права доступа к файловой системе

Часто при установке новой версии платформы системные администраторы забывают выдать права на новую директорию установки для пользователя, от имени которого работает IIS. Разберем, кому нужны права:

  1. Найдем пользователя, под которым запущен пул приложений (обычно это IIS AppPool\ИмяПула или IUSR).
  2. Этому пользователю необходимо дать права «Чтение и выполнение» на папку C:\Program Files\1cv8\8.3.X.X\ (включая все вложенные папки и файлы).
  3. Если база файловая, убедимся, что у этого же пользователя есть полные права на папку с самой информационной базой.

Шаг 6. Анализ событий Windows (Event Viewer)

Если вышеуказанные шаги не помогли, нам нужно «увидеть» момент падения. Ошибка Failure when receiving data часто сопровождается аварийным завершением процесса w3wp.exe. Посмотрим логи:

  1. Откроем Просмотр событий (Event Viewer).
  2. Перейдем в Журналы Windows -> Приложение.
  3. Ищем ошибки с источником Application Error или IIS-W3SVC-WP.
  4. В тексте ошибки часто можно найти упоминание конкретной библиотеки, вызвавшей сбой (например, backend.dll или 1c-iis-extension). Это поможет сузить круг поиска до конкретной проблемы в коде или конфигурации.

Дополнительные рекомендации

Проанализируем еще два редких, но важных фактора:

Таким образом, решение проблемы Failure when receiving data from the peer требует комплексного подхода: от проверки разрядности процессов до тонкой настройки лимитов IIS и прав доступа. Последовательное выполнение этих шагов позволяет восстановить работу тонкого клиента в кратчайшие сроки.

← На главную