.NET -Anwendungen mit COM -Objekten können AccessViolationExceptions
begegnen. Selbst mit try-catch
Blöcken werden diese Ausnahmen möglicherweise nicht erwischt, was zu Debugger -Pausen bei Methodenaufrufen führt. Dieses Verhalten ergibt sich aus dem CSE -Mechanismus (N. NEH -4.0er). Das CLR -Team von Microsoft berät den Versuch, CSEs im verwalteten Code zu verarbeiten, da es einen kompromittierten Prozessstatus bezeichnet. AccessViolationException
fällt in die CSE -Kategorie.
Hier sind mehrere Ansätze zur Verwaltung dieser Situation:
Ziel .NET Framework 3.5: Ihre Anwendung für das .NET Framework 3.5 neu kompilieren und in der .NET 4.0 -Umgebung ausführen.
Anwendungskonfiguration ändern: Fügen Sie den folgenden Eintrag in die Konfigurationsdatei Ihrer Anwendung (.config
):
<code class="language-xml"><legacycorruptedstateexceptionspolicy enabled="true" /></code>
Einstellung enabled="true"
ermöglicht das Erbeverhalten, diese Ausnahmen zu fangen.
HandleProcessCorruptedStateExceptions
: Annotieren Sie die Methoden, die für diese Ausnahmen mit dem Attribut HandleProcessCorruptedStateExceptions
anfällig sind: <code class="language-csharp">[HandleProcessCorruptedStateExceptions] public void MyComMethod() { ... }</code>
Durch die Implementierung einer dieser Lösungen können Sie AccessViolationExceptions
effektiv aus COM -Objekt -Interaktionen erfassen und verarbeiten.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit AccessViolationExceptions in .NET um, wenn ich COM-Objekte verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!