Что означает код ошибки Windows 1818 (RPC_S_CALL_CANCELLED)?

 
Предыдущий Следующий
RPC_S_NO_INTERFACES RPC_S_BINDING_INCOMPLETE

RPC_S_CALL_CANCELLED

RPC_S_CALL_CANCELLED означает, что вызов RPC был отменён либо истёк заданный для отмены тайм-аут вызова. Сам по себе этот код не доказывает, что сервер не выполнил никакой работы.

Отмена — это запрос, а не откат

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

Что делать

  • Делайте серверные операции идемпотентными либо предоставляйте способ запросить их окончательное состояние.
  • На сервере проверяйте отмену там, где этого требует модель RPC, и предсказуемо освобождайте ресурсы.
  • Регистрируйте, был ли вызов отменён клиентом, завершён по тайм-ауту или прерван политикой приложения.

Microsoft: RpcCancelThreadEx · RpcServerTestCancel


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