Share via


reportAvOnComRelease-MDA

Aktualisiert: November 2007

Der reportAvOnComRelease-MDA (Managed Debugging Assistant, Assistent für verwaltetes Debuggen) wird aktiviert, wenn aufgrund von Fehlern bei der Benutzerverweiszählung Ausnahmen ausgelöst werden, während COM-Interop durchgeführt und die Release-Methode bzw. die ReleaseComObject-Methode in Kombination mit Rohdaten-COM-Aufrufen verwendet wird.

Symptome

Zugriffsverletzungen und Speicherschäden.

Ursache

Gelegentlich wird durch Fehler bei der Benutzerverweiszählung eine Ausnahme ausgelöst, während COM-Interop durchgeführt und die Release-Methode bzw. die ReleaseComObject-Methode in Kombination mit Rohdaten-COM-Aufrufen verwendet wird. Normalerweise wird diese Ausnahme verworfen, da es andernfalls zu einer Zugriffsverletzung in der CLR kommt und diese beendet wird. Wenn dieser Assistent aktiviert wird, können solche Ausnahmen festgestellt und gemeldet werden, anstatt sie einfach zu verwerfen.

Lösung

Überprüfen Sie den Programmcode für die Verweiszählung, und suchen Sie nach Fehlern. Untersuchen Sie auch die systemeigenen Clients des Objekts auf Fehler bei der Verweiszählung.

Auswirkungen auf die Laufzeit

Es sind zwei Modi verfügbar. Wenn das allowAv-Attribut true ist, verhindert der Assistent, dass die CLR die Zugriffsverletzung verwirft. Wenn allowAv den Wert false hat (Standard), verwirft die CLR die Zugriffsverletzung. Dem Benutzer wird jedoch eine Warnmeldung angezeigt, um darauf hinzuweisen, dass eine Ausnahme aufgetreten ist und verworfen wurde.

Ausgabe

Die Ausgabe enthält nach Möglichkeit die ursprüngliche Vtable des COM-Schnittstellenzeigers. Andernfalls wird eine Informationsmeldung angezeigt.

Konfiguration

<mdaConfig>
  <assistants>
    <reportAvOnComRelease allowAv="false"/>
  </assistants>
</mdaConfig>

Siehe auch

Konzepte

Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen

Übersicht über das Interop-Marshalling

Referenz

MarshalAsAttribute

Weitere Ressourcen

Interoperabilität