Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Note
Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.
Помощник disconnectedContext по управляемой отладке (MDA) активируется при попытке среды CLR перейти в отключенную квартиру или контекст при обслуживании запроса относительно COM-объекта.
Симптомы
Вызовы, сделанные в вызываемой оболочке среды выполнения (RCW), доставляются базовому компоненту COM в текущей квартире или контексте вместо того, в котором они существуют. Это может привести к повреждению и потере данных, если компонент COM не является многопоточным, как в случае компонентов однопоточной квартиры (STA). Кроме того, если RCW является прокси-сервером, вызов может привести к вызову COMException с помощью HRESULT RPC_E_WRONG_THREAD.
Причина
Когда среда CLR пытается перейти в нее, среда OLE или контекст завершена. Это чаще всего вызвано завершением работы квартир STA до того, как все com-компоненты, принадлежащие квартире, были полностью освобождены, это может произойти в результате явного вызова пользовательского кода в RCW или в то время как среда CLR управляет компонентом COM, например, когда среда CLR освобождает com-компонент при сборе мусора связанного RCW.
Разрешение
Чтобы избежать этой проблемы, убедитесь, что поток, принадлежащий STA, не завершается до завершения приложения со всеми объектами, живущими в квартире. Это же относится к контекстам; Убедитесь, что контексты не завершаются до завершения работы приложения с любыми COM-компонентами, которые находятся в контексте.
Влияние на среду выполнения
Этот MDA не влияет на среду CLR. Он сообщает только данные об отключенном контексте.
Выходные данные
Сообщает контекстный файл cookie отключенной квартиры или контекста.
Конфигурация
<mdaConfig>
<assistants>
<disconnectedContext />
</assistants>
</mdaConfig>