disconnectedContext MDA

disconnectedContext YÖNETILEN hata ayıklama yardımcısı (MDA), CLR com nesnesiyle ilgili bir isteğe hizmet verirken bağlantısız bir daireye veya bağlama geçiş yapmaya çalıştığında etkinleştirilir.

Belirtiler

Çalışma Zamanı Çağrılabilen Sarmalayıcı (RCW) üzerinde yapılan çağrılar, mevcut oldukları daire veya bağlam yerine geçerli daire veya bağlamdaki temel COM bileşenine teslim edilir. Tek iş parçacıklı daire (STA) bileşenlerinde olduğu gibi, COM bileşeni çok iş parçacıklı değilse, bu bozulmaya ve veri kaybına neden olabilir. Alternatif olarak, RCW'nin kendisi bir ara sunucuysa, çağrı bir HRESULT RPC_E_WRONG_THREAD ile bir COMException atılmasıyla sonuçlanabilir.

Nedeni

CLR buna geçiş yapmaya çalıştığında OLE dairesi veya bağlamı kapatıldı. Bu durum genellikle STA dairelerinin, dairenin sahip olduğu tüm COM bileşenleri tamamen serbest bırakılmadan önce kapatılmasından kaynaklanır. Bu durum, bir RCW'de kullanıcı kodundan yapılan açık bir çağrının sonucu olarak veya CLR'nin KENDISI COM bileşenini düzenlerken (örneğin, ilişkili RCW çöp toplandığında CLR COM bileşenini serbest bıraktığında) oluşabilir.

Çözüm

Bu sorundan kaçınmak için, uygulama dairede yaşayan tüm nesnelerle bitmeden STA'ya sahip olan iş parçacığının sonlandırılmadığından emin olun. Aynı durum bağlamlar için de geçerlidir; bağlamın içinde bulunan COM bileşenleriyle uygulama tamamen tamamlanmadan önce bağlamların kapatılmadığından emin olun.

Çalışma Zamanı Üzerindeki Etkisi

Bu MDA'nın CLR üzerinde hiçbir etkisi yoktur. Yalnızca bağlantısı kesilmiş bağlamla ilgili verileri bildirir.

Çıktı

Bağlantısı kesilmiş dairenin veya bağlamın bağlam tanımlama bilgisini bildirir.

Yapılandırma

<mdaConfig>  
  <assistants>  
    <disconnectedContext />  
  </assistants>  
</mdaConfig>  

Ayrıca bkz.