| Предыдущий | Следующий |
| CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED | SL_E_SFS_INVALID_FS_VERSION |
CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED
Контекст этого HRESULT
Результат CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED читается как Компонент вызвал EnterTransactionScope, но перед возвратом не выполнил соответствующий вызов ExitTransactionScope. Практический разбор начинается на границе COM+ transaction scope, где можно получить воспроизводимые входы и первый нижележащий статус.
Диагностическая выборка
- запишите transaction ID, isolation level, ambient context и порядок входа/выхода из scope. Для условия «Компонент вызвал EnterTransactionScope, но перед возвратом не выполнил соответствующий вызов ExitTransactionScope» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
- сохраните технические маркеры
-2147164111,2147803185,1,4,FACILITY_ITFс теми значениями, которые были видны до очистки/rollback; они привязывают «Компонент вызвал EnterTransactionScope, но перед возвратом не выполнил соответствующий вызов ExitTransactionScope» к реальному вызову. - сохраните момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии COM+ transaction scope.
Последовательность проверки
повторите на контрольном случае сопоставить вызов с активной транзакцией и проверить, где именно изменился transaction context. Изменяйте только предпосылку, связанную с «Компонент вызвал EnterTransactionScope, но перед возвратом не выполнил соответствующий вызов ExitTransactionScope», а регистрацию, identity, входной объект и окружение по возможности оставляйте прежними.
не ретраить операцию с побочными эффектами, пока неизвестно, была ли исходная транзакция зафиксирована; для результата «Компонент вызвал EnterTransactionScope, но перед возвратом не выполнил соответствующий вызов ExitTransactionScope» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.
Для соседних результатов CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED сравнивайте первую различающуюся операцию. Исправление подтверждено только тогда, когда исходная граница проходит при прежних входах и следующий ожидаемый шаг получает корректное состояние.
Технические ссылки
- Microsoft: COM transaction and context error codes
- Microsoft: ContextUtil class
- Microsoft: EnterpriseServicesInteropOption
- Microsoft: implementing a transaction scope
- Microsoft: HRESULT values in MS-ERREF
- Microsoft: COM error codes
Нужно найти другой код? Найти другой код состояния или ошибки.