Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Note
Artikel ini khusus untuk .NET Framework. Ini tidak berlaku untuk implementasi .NET yang lebih baru, termasuk .NET 6 dan versi yang lebih baru.
Asisten disconnectedContext penelusuran kesalahan terkelola (MDA) diaktifkan ketika CLR mencoba beralih ke apartemen atau konteks yang terputus saat melayani permintaan mengenai objek COM.
Gejala
Panggilan yang dilakukan pada Runtime Callable Wrapper (RCW) dikirimkan ke komponen COM yang mendasarinya di apartemen atau konteks saat ini alih-alih yang ada. Hal ini dapat menyebabkan kerusakan dan atau kehilangan data jika komponen COM tidak multithreaded, seperti dalam kasus komponen apartemen berulir tunggal (STA). Atau, jika RCW itu sendiri adalah proksi, panggilan dapat mengakibatkan pelemparan COMException dengan HRESULT RPC_E_WRONG_THREAD.
Penyebab
Apartemen atau konteks OLE telah dimatikan ketika CLR mencoba untuk beralih ke dalamnya. Ini paling umum disebabkan oleh apartemen STA dimatikan sebelum semua komponen COM yang dimiliki oleh apartemen benar-benar dirilis Ini dapat terjadi sebagai akibat dari panggilan eksplisit dari kode pengguna pada RCW atau sementara CLR itu sendiri memanipulasi komponen COM, misalnya ketika CLR merilis komponen COM ketika RCW terkait telah dikumpulkan sampah.
Resolution
Untuk menghindari masalah ini, pastikan utas yang memiliki STA tidak berakhir sebelum aplikasi selesai dengan semua objek yang tinggal di apartemen. Hal yang sama berlaku untuk konteks; pastikan konteks tidak dimatikan sebelum aplikasi benar-benar selesai dengan komponen COM apa pun yang berada di dalam konteks.
Efek pada Runtime
MDA ini tidak berpengaruh pada CLR. Ini hanya melaporkan data tentang konteks yang terputus.
Hasil
Melaporkan cookie konteks apartemen atau konteks yang terputus.
Konfigurasi
<mdaConfig>
<assistants>
<disconnectedContext />
</assistants>
</mdaConfig>