| Предыдущий | Следующий |
| RPC_E_ATTEMPTED_MULTITHREAD | RPC_E_FAULT |
RPC_E_NOT_REGISTERED
Как диагностировать RPC_E_NOT_REGISTERED
RPC_E_NOT_REGISTERED — HRESULT, относящийся к области COM/RPC. Запрошенный COM-интерфейс не зарегистрирован либо недоступен у целевого серверного объекта.
Код относится к COM/RPC и описывает передачу вызова, маршалинг параметров, состояние прокси либо исключение на стороне клиента или сервера.
Практическая диагностика
Важно сохранить исходный контекст вызова: имя функции, параметры, состояние объекта и первый низкоуровневый статус. В случае этот результат без этого одинаковый HRESULT может ошибочно связываться с разными причинами.
- При разборе этот результат сверьте типы, размеры и время жизни всех входных/выходных параметров, особенно указателей и пользовательских структур.
- При разборе этот результат после разрыва соединения или отключения объекта создайте новый COM-прокси, а не повторяйте вызов через старый.
- При разборе он запишите CLSID/IID, номер метода, границу процесса или апартамента и сторону, на которой получен HRESULT.
- При разборе он проверьте регистрацию интерфейса и proxy/stub, разрядность компонентов и совместимость type library.
Как локализовать источник
- Соберите дампы клиента и сервера вокруг первого сбоя и сохраните correlation между вызовами.
- Включите журналирование RPC/COM только на время воспроизведения и зафиксируйте идентификатор интерфейса.
- Проверьте тот же метод in-proc или с минимальными параметрами, чтобы локализовать маршалинг.
Критерий успешного исправления
Считайте причину он устранённой только после проверки на тех же данных и под той же учётной записью, где возник сбой, а затем выполните контрольный тест с заведомо неверным входом.
Ссылки по этому результату
Нужно найти другой код? Найти другой код состояния или ошибки.