Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_28005 1С:Предприятие и СУБД

MSSQL Error 28005: An existing connection was forcibly closed by remote host — Решение

Обновлено: 25.08.2026 · Официальная документация ↗
  • Ошибка в журнале SQL Server или приложения: Error: 28005, Severity: 16, State: 1. An existing connection was forcibly closed by the remote host.
  • В журнале регистрации 1С: Ошибка СУБД: Соединение с сервером баз данных разорвано (WSAECONNRESET).
  • Внезапное завершение длительных отчетов и пакетных обработок 1С.
  • Сетевой сброс сессий TCP (флаг TCP RST) со стороны ОС или аппаратного фаервола.

1. Настройка параметров TCP Keep-Alive в реестре Windows

Межсетевые экраны и NAT-маршрутизаторы часто сбрасывают неактивные TCP-соединения через 5–15 минут простоя. Настройте отправку Keep-Alive пакетов каждые 60 секунд на сервере 1С и сервере СУБД:

# Настройка таймаута TCP KeepAlive (60 000 мс = 1 минута)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "KeepAliveTime" -Value 60000 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" -Name "KeepAliveInterval" -Value 1000 -Type DWord

2. Проверка настроек TCP Chimney и SynAttackProtect

# Отключение устаревших механизмов разгрузки TCP в Windows Server
netsh int tcp set global chimney=disabled
netsh int tcp set global rss=enabled
netsh int tcp set global netdma=disabled

3. Мониторинг разрывов соединений через Extended Events

CREATE EVENT SESSION [Track_Disconnects] ON SERVER 
ADD EVENT sqlserver.connectivity_ring_buffer_recorded,
ADD EVENT sqlserver.error_reported(
    ACTION(sqlserver.client_app_name, sqlserver.client_hostname, sqlserver.session_id)
    WHERE ([error_number]=(28005) OR [error_number]=(17836))
)
ADD TARGET package0.ring_buffer;
GO
ALTER EVENT SESSION [Track_Disconnects] ON SERVER STATE = START;

4. Настройка времени жизни соединений в кластере 1С

В свойствах информационной базы 1С через консоль кластера серверов установите параметр Время засыпания пассивных сеансов и Время завершения спящих сеансов во избежание накопления «мертвых» сокетов.

💡 Практика специалистов: Если сервер 1С и SQL Server расположены на разных физических хостах, соединяйте их через выделенный физический интерфейс (10/25/40 GbE) без промежуточных аппаратных межсетевых экранов с deep packet inspection.

Частые вопросы (FAQ)

Кто инициирует сброс соединения при ошибке 28005 (WSAECONNRESET)?

Сброс (пакет TCP RST) отправляется удаленным хостом (сервером приложений 1С), операционной системой или промежуточным фаерволом, если хост считает сессию закрытой по таймауту.

Помогает ли увеличение KeepAliveTime решить проблему?

Напротив, параметр KeepAliveTime необходимо уменьшать (например, с 2 часов по умолчанию до 1–2 минут), чтобы сетевые пакеты поддержания связи не позволяли фаерволу закрывать сессию.

Может ли падение процесса rphost вызывать 28005 в SQL Server?

Да, если рабочий процесс rphost аварийно падает (например, по переполнению памяти), операционная система сервера 1С немедленно отправляет TCP RST серверу SQL Server.

Требуется ли перезагрузка после изменения KeepAliveTime в реестре?

Да, изменения в ветке HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters вступают в силу только после перезагрузки операционной системы.

Полезные материалы
Рекомендуем