Что означает код HRESULT 0x80010011 (RPC_E_CANTCALLOUT_AGAIN)?

 
Предыдущий Следующий
RPC_E_INVALID_PARAMETER RPC_E_SERVER_DIED_DNE

RPC_E_CANTCALLOUT_AGAIN

Что означает RPC_E_CANTCALLOUT_AGAIN

RPC_E_CANTCALLOUT_AGAIN (0X80010011) означает, что код пытается выполнить второй исходящий вызов по тому же каналу в фазе, где COM/DDE допускает только один outstanding call. Это ограничение reentrancy/call sequencing.

Что проверить

  • Снимите стек первого и второго callout и определите, какой callback или message handler инициировал вложенный вызов до завершения предыдущего.
  • Не решайте проблему созданием второго произвольного proxy: сначала устраните незаконную вложенность и дождитесь выхода из текущей call phase.
  • Если операция должна быть асинхронной, перенесите её на очередь/другую допустимую фазу и подтвердите, что второй call стартует только после завершения первого.

В отличие от RPC_E_CANTTRANSMIT_CALL, здесь очередь не обязана быть переполнена: сам второй callout запрещён текущим состоянием канала.

Технические ссылки


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