| Предыдущий | Следующий |
| RPC_S_NO_INTERFACES | RPC_S_BINDING_INCOMPLETE |
RPC_S_CALL_CANCELLED
RPC_S_CALL_CANCELLED означает, что вызов RPC был отменён либо истёк заданный для отмены тайм-аут вызова. Сам по себе этот код не доказывает, что сервер не выполнил никакой работы.
Отмена — это запрос, а не откат
При синхронной отмене клиент может прекратить ожидание, но серверная процедура всё ещё должна обнаружить отмену и завершить очистку. В асинхронном RPC отмена и завершение также являются отдельными переходами состояния.
Что делать
- Делайте серверные операции идемпотентными либо предоставляйте способ запросить их окончательное состояние.
- На сервере проверяйте отмену там, где этого требует модель RPC, и предсказуемо освобождайте ресурсы.
- Регистрируйте, был ли вызов отменён клиентом, завершён по тайм-ауту или прерван политикой приложения.
Microsoft: RpcCancelThreadEx · RpcServerTestCancel
Нужно найти другой код? Найти другой код состояния или ошибки.
