MDA reportAvOnComRelease
Aggiornamento: novembre 2007
L'assistente al debug gestito reportAvOnComRelease viene attivato quando vengono generate eccezioni a causa di errori nel conteggio dei riferimenti utente durante l'esecuzione dell'interoperabilità COM e l'utilizzo del metodo Release o ReleaseComObject in combinazione con chiamate COM non elaborate.
Sintomi
Violazioni di accesso e danneggiamento della memoria.
Causa
Occasionalmente viene generata un'eccezione a causa di errori nel conteggio dei riferimenti utente durante l'esecuzione dell'interoperabilità COM e l'utilizzo del metodo Release o ReleaseComObject in combinazione con chiamate COM non elaborate. Di solito questa eccezione viene eliminata in quanto, in caso contrario, causerebbe una violazione di accesso in CLR con il conseguente arresto di quest'ultimo. Quando l'assistente in questione viene attivato, le eccezioni di questo tipo possono essere rilevate e segnalate anziché semplicemente eliminate.
Risoluzione
Esaminare il codice del conteggio dei riferimenti e cercare gli errori, nonché verificare la presenza di errori nel conteggio dei riferimenti sui client nativi dell'oggetto.
Effetto sul runtime
Sono disponibili due modalità. Se l'attributo allowAv è true, l'assistente impedisce al runtime l'eliminazione della violazione di accesso. Se invece tale attributo è false, impostazione predefinita, il runtime elimina la violazione di accesso ma l'utente riceve un messaggio di avviso nel quale è indicato che un'eccezione è stata generata ed eliminata.
Output
Se possibile, l'output contiene il vtable originale del puntatore a interfaccia COM. In caso contrario, viene visualizzato un messaggio informativo.
Configurazione
<mdaConfig>
<assistants>
<reportAvOnComRelease allowAv="false"/>
</assistants>
</mdaConfig>
Vedere anche
Concetti
Diagnostica degli errori tramite gli assistenti al debug gestito
Cenni preliminari sul marshalling di interoperabilità