| Предыдущий | Следующий |
| CONTEXT_E_OLDREF | CONTEXT_E_TMNOTAVAILABLE |
CONTEXT_E_ROLENOTFOUND
Практический смысл результата
Штатный смысл CONTEXT_E_ROLENOTFOUND — Указанная роль не настроена для приложения. Диагностику полезно начинать не с общего восстановления системы, а с операции уровня COM+ context, transaction и synchronization, которая первой вернула этот результат.
Что сохранить до изменений
- Зафиксируйте activity/context ID, transaction ID/state, role, synchronization boundary, thread/apartment и время вызова; для этого результата эти данные должны относиться к первому неуспешному вызову, а не к cleanup после него.
- Отдельно сопоставьте Basic Constraints CA flag и роль сертификата как issuer либо end entity. Это проверяет условие «Указанная роль не настроена для приложения» по фактическим параметрам, а не по имени константы.
- В контрольном отчёте сверьте имя role с COM+ catalog и membership в конкретном application; сохраните момент изменения состояния и результат непосредственно следующего API.
Проверка гипотезы
Воспроизведение считается диагностическим, если удаётся сопоставить вызов с жизненным циклом транзакции/контекста и повторить на свежем component context, сохранив прочие условия без изменений.
Для этого кода опасна слишком широкая реакция: не повторять side-effecting method, пока неизвестно состояние исходной транзакции. Коррекция должна быть привязана к установленной причине.
Ближайший по прежнему шаблону результат CONTEXT_E_OLDREF не следует считать эквивалентным: сравнивайте точное условие, указанное здесь, и первую различающуюся операцию.
Технические ссылки
- Microsoft: COM transaction and context error codes
- Microsoft: checking COM+ role membership
- Microsoft: ISecurityCallContext
- Microsoft: the COM+ catalog
- Microsoft: HRESULT values in MS-ERREF
Нужно найти другой код? Найти другой код состояния или ошибки.