Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Cet article est spécifique à .NET Framework. Ceci ne s’applique pas aux implémentations plus récentes de .NET, y compris .NET 6 et versions ultérieures.
L’Assistant disconnectedContext débogage managé (MDA) est activé lorsque le CLR tente de passer en appartement ou contexte déconnecté lors de la maintenance d’une requête concernant un objet COM.
Symptoms
Les appels effectués sur un wrapper rcW (Runtime Callable Wrapper ) sont remis au composant COM sous-jacent dans l’appartement ou le contexte actuel au lieu de celui dans lequel ils existent. Cela peut entraîner une altération et ou une perte de données si le composant COM n’est pas multithread, comme dans le cas des composants STA (Single-Threaded Apartment). Sinon, si le RCW est lui-même un proxy, l’appel peut entraîner la levée d’un COMException avec un HRESULT de RPC_E_WRONG_THREAD.
Cause
L’appartement ou le contexte OLE a été arrêté lorsque le CLR tente de le passer. Cela est le plus souvent dû à l’arrêt des appartements STA avant que tous les composants COM appartenant à l’appartement aient été complètement libérés, cela peut se produire suite à un appel explicite à partir du code utilisateur sur un RCW ou pendant que le CLR lui-même manipule le composant COM, par exemple lorsque le CLR libère le composant COM lorsque le RCW associé a été récupéré.
Résolution
Pour éviter ce problème, assurez-vous que le thread propriétaire du STA ne se termine pas avant la fin de l’application avec tous les objets qui vivent dans l’appartement. La même chose s’applique aux contextes ; assurez-vous que les contextes ne sont pas arrêtés avant que l’application ne soit complètement terminée avec tous les composants COM qui vivent dans le contexte.
Effet sur le runtime
Ce MDA n’a aucun effet sur le CLR. Il signale uniquement les données relatives au contexte déconnecté.
Sortie
Signale le cookie de contexte de l’appartement ou du contexte déconnecté.
Configuration
<mdaConfig>
<assistants>
<disconnectedContext />
</assistants>
</mdaConfig>