Delen via


reportAvOnComRelease MDA

Notitie

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

De reportAvOnComRelease beheerde foutopsporingsassistent (MDA) wordt geactiveerd wanneer er uitzonderingen optreden als gevolg van fouten bij het tellen van gebruikersreferenties tijdens het uitvoeren van COM-interoperabiliteit en het gebruik van de Release of ReleaseComObject methode in combinatie met onbewerkte COM-aanroepen.

Symptomen

Toegangsschendingen en geheugenbeschadiging.

Oorzaak

Af en toe wordt er een uitzondering gegenereerd vanwege fouten bij het tellen van gebruikersreferenties tijdens het uitvoeren van COM-interoperabiliteit en het gebruik van de Release of ReleaseComObject methode in combinatie met onbewerkte COM-aanroepen. Normaal gesproken wordt deze uitzondering verwijderd omdat dit geen toegangsschending in de CLR zou veroorzaken, waardoor deze uitvalt. Wanneer deze assistent is ingeschakeld, kunnen dergelijke uitzonderingen worden gedetecteerd en gerapporteerd in plaats van gewoon te worden verwijderd.

Oplossing

Bekijk de code voor het tellen van verwijzingen en zoek naar fouten en controleer de systeemeigen clients van uw object op fouten bij het tellen van verwijzingen.

Effect op de runtime

Er zijn twee modi beschikbaar. Als het allowAv kenmerk is true, voorkomt de assistent dat de runtime de toegangsschending negeert. Als allowAv dit falsede standaardinstelling is, wordt de toegangsschending door de runtime verwijderd, maar wordt een waarschuwingsbericht aan de gebruiker gemeld om aan te geven dat er een uitzondering is gegenereerd en verwijderd.

Uitvoer

Indien mogelijk bevat de uitvoer de oorspronkelijke vtable van de COM-interfacepointer. Anders wordt een informatief bericht weergegeven.

Configuratie

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

Zie ook