Compartilhar via


disconnectedContext MDA

The disconnectedContext gerenciado Assistente de depuração (MDA) é ativado quando o CLR tenta transição em um apartment desconectado ou contexto ao mesmo tempo, atendendo a uma solicitação relacionadas a um objeto COM.

Sintomas

Chamadas feitas em um O Tempo de execução Callable Wrapper (RCW) são entregues para o componente COM base na corrente apartment ou contexto em vez de um em que elas existem. Isso pode causar corrupção e ou perda de dados se o componente COM não é multithreaded, sistema autônomo no caso dos componentes de single-threaded apartment (STA).Como alternativa, se o RCW é um proxy, a telefonar pode resultar em lançamento de um COMException com um HRESULT de RPC_E_WRONG_THREAD.

Causa

OLE apartment ou contexto foi desligar quando o CLR tenta transição nela.Isso é causado por STA apartments com mais freqüência que está sendo desligar antes de todos sistema autônomo componentes COM pertencentes a apartment completamente lançados, isso pode ocorrer sistema autônomo resultado de uma telefonar explícita do código do usuário em um RCW ou enquanto o próprio CLR está manipulando o componente COM, por exemplo, quando o CLR está lançando o componente COM quando o RCW associado tiver sido coletados pelo lixo.

Resolução

Para evitar esse problema, certifique-se o segmento que possui o STA não encerra antes do aplicativo terminar com todos os objetos que residem no apartment.O mesmo se aplica aos contextos; Verifique se contextos não são encerrados antes que o aplicativo seja totalmente concluído com quaisquer componentes COM que residem dentro do contexto.

Efeito sobre o tempo de execução

Este MDA não tem efeito sobre o CLR.Ele só reporta dados sobre o contexto desconectado.

Saída

Relata o cookie de contexto do desconectada apartment ou contexto.

Configuração

<mdaConfig>
  <assistants>
    <disconnectedContext enable="false" />
  </assistants>
</mdaConfig>

Consulte também

Conceitos

Diagnosticar erros com assistentes de depuração gerenciadas

Visão geral do empacotamento interop

Referência

MarshalAsAttribute

Outros recursos

Interoperabilidade