Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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>