Что означает код HRESULT 0x80010105 (RPC_E_SERVERFAULT)?

 
Предыдущий Следующий
RPC_E_FAULT RPC_E_CHANGED_MODE

RPC_E_SERVERFAULT

RPC_E_SERVERFAULT: смысл кода и диагностика

RPC_E_SERVERFAULT — HRESULT, относящийся к области COM/RPC. COM-сервер вызвал исключение при обработке запроса.

Применительно к этому результату этот HRESULT возвращён инфраструктурой COM. В случае этот результат полезная причина определяется границей процесса/апартамента, интерфейсом, методом и тем, какая сторона не смогла маршалировать данные.

Разбор условия ошибки

Применительно к этому результату код затрагивает соединение или удалённую сторону. В случае он разделите разрешение имени, маршрут, установление транспорта, TLS/аутентификацию и прикладной ответ.

  • Проверьте endpoint, DNS, маршрут, прокси и сетевую трассировку именно на этапе, где появился статус.
  • При разборе он сверьте типы, размеры и время жизни всех входных/выходных параметров, особенно указателей и пользовательских структур.
  • При разборе он после разрыва соединения или отключения объекта создайте новый COM-прокси, а не повторяйте вызов через старый.
  • При разборе он запишите CLSID/IID, номер метода, границу процесса или апартамента и сторону, на которой получен HRESULT.
  • При разборе он проверьте регистрацию интерфейса и proxy/stub, разрядность компонентов и совместимость type library.

Диагностический минимум

  • Проверьте тот же метод in-proc или с минимальными параметрами, чтобы локализовать маршалинг.
  • Соберите дампы клиента и сервера вокруг первого сбоя и сохраните correlation между вызовами.
  • Включите журналирование RPC/COM только на время воспроизведения и зафиксируйте идентификатор интерфейса.

Как подтвердить исправление

Применительно к нему проверка исправления он должна включать успешный рабочий путь, предсказуемый отказ на некорректном входе и отсутствие новых предупреждений в журналах подсистемы COM/RPC.

Ссылки по этому результату


Нужно найти другой код? Найти другой код состояния или ошибки.