disconnectedContext MDA
Управляемый помощник по отладке (MDA) disconnectedContext активируется при попытке среды CLR выполнить передачу в отсоединенный контейнер или контекст во время обслуживания запроса, связанного с объектом СОМ.
Признаки
Вызовы, выполненные для RCW Вызываемая оболочка времени выполнения, доставляются в основной компонент СОМ в текущем контейнере или контексте вместо контейнера или контекста, в котором они существуют. Это может вызвать повреждение или потерю данных, если компонент СОМ не является многопотоковым, как в случае с компонентами однопотокового подразделения (STA). Напротив, если RCW сама по себе является прокси, вызов должен привести к вызову COMException с HRESULT of RPC_E_WRONG_THREAD.
Причина
Контейнер или контекст OLE был закрыт во время попытки среды CLR выполнить передачу в него. Наиболее часто причиной этого является закрытие контейнеров STA до того, как все компоненты СОМ, которыми владеет контейнер, будут полностью высвобождены. Это может произойти в результате явного вызова от пользовательского кода к RCW или в то время, пока среда CLR сама оперирует компонентом СОМ, например, когда среда CLR высвобождает компонент СОМ, притом что в то же время происходит процесс сборки мусора в связанной RCW.
Решение
Чтобы предотвратить возникновение данной проблемы, следует убедиться в том, что поток, который владеет STA, не будет завершен прежде, чем приложение завершит свою работу со всеми объектами, которые находятся в контейнере. То же самое применимо к контекстам: следует обеспечить непрерывную работу контекстов до того момента, пока приложение полностью не завершит работу с компонентами СОМ, которые находятся внутри контекста.
Влияние на среду выполнения
Данный помощник по отладке управляемого кода не оказывает влияния на среду CLR. Он только сообщает сведения об отсоединенных контекстах.
Output
Сообщает сведения о контекстном cookie отсоединенного контейнера или контекста.
Конфигурация
<mdaConfig>
<assistants>
<disconnectedContext enable="false" />
</assistants>
</mdaConfig>
См. также
Ссылки
Основные понятия
Диагностика ошибок посредством управляемых помощников по отладке