2009-07-30 5 views
5

Als Entwickler versuche ich eine Entwicklungsumgebung auf unserem brandneuen VMWare ESX Server einzurichten. Dinge funktionieren nicht: irgendwo während der SharePoint-Produkt & Technologies Configuration Wizard, verschwindet die Anwendung nur, und im Ereignisprotokoll finde ich den folgenden Fehler:Wie debugge ich einen .net Fatal Execution Engine Error?

.NET Runtime-Version 2.0.50727.3082 - Schwerwiegender Execution Engine Error (7A0979C6) (80131506)

Jetzt weiß ich, all das klingt verdächtig nach einem ServerFault.com Stil Problem (und eine sehr allgemeine Fehlermeldung, viele ähnliche Treffer auf google) und natürlich wir sind das Problem in einer solchen Adressierung Ein Weg (Installieren/Deinstallieren von Service Packs/Hotfixes, verschiedene Betriebssystemversionen, Testen einzelner Elemente der Installation, verschiedene Einstellungen für die VM usw.), aber aus persönlichem Interesse würde ich mich freuen Um ein bisschen mehr Verständnis für das Problem zu bekommen, installieren Sie Hotfix XXYY und hoffen, dass es verschwindet. Ich habe mich gefragt: Wie gehe ich diesen Fehler aus der Sicht eines Programmierers?

  • Kann ich irgendwie einen Debugger stoppen, wenn dieses Problem auftritt, oder manuell auf die gemeldete Adresse (in welchem ​​Modul) zeigen?
  • Sollte ich versuchen zu installieren Visual Studio dafür verwenden, oder Lowlevel-Tools wie Windbg verwenden?
  • Was sind diese Fehlercodes genau? Letzteres sieht wie ein com-Fehler aus. Ist der andere eine Adresse?
  • Kann ich irgendwie detailliertere Fehlerberichte aktivieren? Eine fehlerhafte .dll wäre nett.
  • Sie können sagen, ich bin überhaupt nicht erlebt Debugging auf dieser Ebene in einer .net-Umgebung, aber ich bin sehr gerne bereit zu lernen. Alle Hinweise sind herzlich willkommen!

    p.s. Wenn ich versuche, das Befehlszeilenkonfigurationstool psconfig auszuführen, um eine Nicht-UI-Konfiguration durchzuführen, lösen die meisten, wenn nicht alle Befehle eine StackOverflowException aus. Wieder, wo gehe ich von dort?

    +0

    Ich glaube 80131506 ist der interne Fehlercode für FEEE –

    +0

    Sie sollten gute Details über den Fehler erhalten, wenn Sie windbg verwenden, einschließlich Fehler dll/Adresse –

    +0

    @Brian: Ah, gut. Eine Suche durch die Google-Codesuche führt zu COR_E_EXECUTIONENGINE, was zu http://msdn.microsoft.com/en-us/library/system.executionengineexception.aspx führt, eine Seite, die diese Überzeugung ausdrücklich bestätigt. Es gibt wahrscheinlich einen direkteren Weg, das herauszufinden, aber ich kenne keine. :-) @Sam: danke, werde meine Füße nass mit wndbg bekommen. –

    Antwort

    8

    Kurze Antwort: lesen Sie den Blog von Tess Ferrandez. Dies enthält eine Menge nützlicher Anleitungen zum Debuggen von .NET-Anwendungen und führt Sie durch die entsprechenden Schritte.

    Längere Antwort ...

    Innerhalb Visual Studio

    Wenn Sie Visual Studio installiert haben Sie versuchen, auf alle nicht behandelten .NET Ausnahme brechen könnte. Um dies zu ermöglichen, gehen Sie in das Menü und wählen Sie Debug, Exceptions und markieren Common Language Runtime Exceptions. Dann gehen Sie zu Extras, Optionen, Debugging und deaktivieren Sie Nur Code aktivieren. Fügen Sie schließlich den Prozess des Konfigurations-Assistenten hinzu (Sie müssen ihn offensichtlich zuerst ausführen), und der Visual Studio-Debugger wird an dem Punkt unterbrochen, an dem die Ausnahme auftritt.

    Angenommen, der Debugger bricht ab (wenn Sie nicht an den falschen Prozess angehängt haben), dann sollten Sie Zugriff auf den Aufruf-Stack haben und einige fundierte Vermutungen über die Methoden-Namen machen, was falsch läuft. Es besteht jedoch die Möglichkeit, dass dies verschleiert wird, was nicht hilfreich ist. Sie können auch die aktuelle MSIL-Anweisung sehen, die der Debugger angehalten hat. Dies ist, wo es beginnt, ein bisschen über mich hinaus, aber es gibt gute Referenzen da draußen, um Ihnen zu helfen, zu verstehen, was in dem Code passiert.

    Ohne Visual Studio

    Wenn Sie aus irgendeinem Grund Visual Studio nicht haben oder kann der Debugger zu brechen nicht bekommen, dann ist es möglich, ein Abbild des Krachen Prozess zu erstellen. Ich kenne zwei Methoden. Einer ist described by the Windows Server Performance Team mit guten alten Dr. Watson. Der andere ist ein neues Tool wurde gerade von Mark Russinovich ProcInfo freigegeben, die automatisch einen Dump eines Prozesses, der durch nicht behandelte Ausnahmen stürzt erstellt werden kann. Es gibt wahrscheinlich andere Methoden.

    Sobald Sie den Dump haben, können Sie this KB article verwenden, um Sie zu helfen, eingerichtet zu werden, es zu debuggen.

    Schließlich

    zurück zur 'kurze Antwort' oben: Tess' Blog lesen weitere Fortschritte! Dies ist ein großes Thema und sie hat die besten Ressourcen, die ich jemals gefunden habe. Auch gibt es eine gute post by Vincent Rothwell, die helfen könnte, aber es ist wirklich zielgerichtet auf Debugging Ihres eigenen Codes.

    Nebenbei - Sie sollten nicht die Ausnahmen bekommen, die Sie sind. Es deutet auf ein ziemlich ernstes Problem hin. Ich würde auf Korruption, schwerwiegende Hardwarefehler und einen Wiederaufbau achten.

    +0

    Wow, großartige Antwort, dieser einzelne Beitrag ist eine große Hilfe, um mich zu diesem Thema zu bringen. –

    +0

    Auch wir sind auf der Seite völlig einig, tun Umbauten, wie wir sprechen. –

    +0

    Toll, froh, dass ich helfen konnte! –