mdA reportAvOnComRelease

Note

Questo articolo è specifico per .NET Framework. Non si applica alle implementazioni più recenti di .NET, tra cui .NET 6 e versioni successive.

L'assistente reportAvOnComRelease al debug gestito viene attivato quando vengono generate eccezioni a causa di errori di conteggio dei riferimenti utente durante l'esecuzione dell'interoperabilità COM e l'uso del Release metodo o ReleaseComObject combinato con chiamate COM non elaborate.

Symptoms

Violazioni di accesso e danneggiamento della memoria.

Cause

Occasionalmente, viene generata un'eccezione a causa di errori di conteggio dei riferimenti utente durante l'esecuzione dell'interoperabilità COM e l'uso del Release metodo o ReleaseComObject combinato con chiamate COM non elaborate. In genere, questa eccezione viene eliminata perché in questo caso si verificherebbe una violazione di accesso in CLR, portandola inattiva. Quando questo assistente è abilitato, tali eccezioni possono essere rilevate e segnalate invece di essere semplicemente scartate.

Risoluzione

Esaminare il codice di conteggio dei riferimenti e cercare errori, nonché esaminare i client nativi dell'oggetto per individuare gli errori di conteggio dei riferimenti.

Effetto sul runtime

Sono disponibili due modalità. Se l'attributo è true, l'assistente allowAv impedisce al runtime di eliminare la violazione di accesso. Se allowAv è false, che è l'impostazione predefinita, il runtime elimina la violazione di accesso, ma viene segnalato un messaggio di avviso all'utente per indicare che è stata generata e eliminata un'eccezione.

Risultato

Se possibile, l'output contiene la vtable originale dell'interfaccia COM. In caso contrario, viene visualizzato un messaggio informativo.

Configuration

<mdaConfig>
  <assistants>
    <reportAvOnComRelease />
  </assistants>
</mdaConfig>

Vedere anche