| Предыдущий | Следующий |
| RPC_E_CANTCALLOUT_INEXTERNALCALL | RPC_E_SERVER_DIED |
RPC_E_CONNECTION_TERMINATED
RPC_E_CONNECTION_TERMINATED: смысл кода и диагностика
RPC_E_CONNECTION_TERMINATED — HRESULT, относящийся к области COM/RPC. Соединение COM/RPC было разорвано, и связанный с ним прокси больше непригоден.
В случае RPC_E_CONNECTION_TERMINATED статус возник в механизме удалённого или межапартаментного COM-вызова. Применительно к RPC_E_CONNECTION_TERMINATED он не заменяет исходное исключение серверного компонента, если такое было.
Практический вывод для RPC_E_CONNECTION_TERMINATED: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для RPC_E_CONNECTION_TERMINATED найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы COM/RPC.
Как читать имя RPC_E_CONNECTION_TERMINATED
Имя RPC_E_CONNECTION_TERMINATED помогает сузить поиск: CONNECTION — соединение; TERMINATED — технический маркер «terminated». Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.
Разбор условия ошибки
В случае RPC_E_CONNECTION_TERMINATED код затрагивает соединение или удалённую сторону. Применительно к RPC_E_CONNECTION_TERMINATED разделите разрешение имени, маршрут, установление транспорта, TLS/аутентификацию и прикладной ответ.
- Для RPC_E_CONNECTION_TERMINATED проверьте endpoint, DNS, маршрут, прокси и сетевую трассировку именно на этапе, где появился статус.
- Для RPC_E_CONNECTION_TERMINATED найдите момент закрытия/удаления объекта и исключите использование устаревшей ссылки после этого события.
- При разборе RPC_E_CONNECTION_TERMINATED запишите CLSID/IID, номер метода, границу процесса или апартамента и сторону, на которой получен HRESULT.
- При разборе RPC_E_CONNECTION_TERMINATED проверьте регистрацию интерфейса и proxy/stub, разрядность компонентов и совместимость type library.
- При разборе RPC_E_CONNECTION_TERMINATED сверьте типы, размеры и время жизни всех входных/выходных параметров, особенно указателей и пользовательских структур.
Как локализовать источник
- Для RPC_E_CONNECTION_TERMINATED проверьте тот же метод in-proc или с минимальными параметрами, чтобы локализовать маршалинг.
- Для RPC_E_CONNECTION_TERMINATED соберите дампы клиента и сервера вокруг первого сбоя и сохраните correlation между вызовами.
- Для RPC_E_CONNECTION_TERMINATED включите журналирование RPC/COM только на время воспроизведения и зафиксируйте идентификатор интерфейса.
Проверка после изменения
В случае RPC_E_CONNECTION_TERMINATED считайте причину RPC_E_CONNECTION_TERMINATED устранённой только после проверки на тех же данных и под той же учётной записью, где возник сбой, а затем выполните контрольный тест с заведомо неверным входом.
Ссылки по RPC_E_CONNECTION_TERMINATED
Нужно найти другой код? Найти другой код состояния или ошибки.