So beheben Sie interne Fehler in the.NET Laufzeit

Vor einigen Wochen hatte mein Firmen-Laptop seltsame Probleme. Ich konnte den Microsoft Developer Webserver nicht mehr starten (über Visual Studio->Debug). Ich habe später herausgefunden, dass ich keine.NET-Anwendung ausführen konnte.

Im Gespräch mit Microsoft CLR Specialist nach der Überprüfung meiner DMP-Dateien, sagte er

  1. Wenn in Ihren Prozess geladen, 8 Bytes bei Offset 0×168 in die .exe Dateien werden auf 0 gesetzt. Dies ist die Problem das führt dazu, dass die CLR fehlschlägt. Diese Bits sind korrekt in der datei, die du mir zur Verfügung gestellt hast.

  2. C:\Windows\System32\Detoured.dll ist in den Prozess geladen. Dies bedeutet, mir, dass die Umwege, die Bibliothek verwendet auf ihrer maschine zu ändern die verhalten dieser Prozesse.

Ich habe auch herausgefunden, dass beim Booten in den abgesicherten Modus alles funktioniert.

Außerdem habe ich herausgefunden, dass ich mit der rechten Maustaste auf eine ausführbare. NET-Datei klicke, und wählen Sie "Ausführen als" und geben Sie die Anmeldeinformationen meines aktuell angemeldeten Benutzers ein, dann funktioniert die Anwendung. Es funktioniert einfach nicht, wenn ich nur auf die App doppelklicke.

Es gibt viele Systemereignismeldungen und Dr. Watson-Typfehler. Hier sind ein paar, die ich bekomme:

Beim Starten des MS Developer Webservers von withing Visual Studio heißt es im Popup-Dialogfeld:

WebDev.WebServer40.exe has encountered a problem and needs
to close. We are sorry for the inconvenience.

VSHost - Systemereignisprotokolleinträge:

Event 1:
Application: MyWebSite.vshost.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error
in the .NET Runtime at IP 791A8BBD (79140000) with exit code 80131506.

Event 2:
Faulting application MyWebSite.vshost.exe, version 10.0.30319.1, 
stamp 4ba2084b, faulting module clr.dll, version 4.0.30319.1, 
stamp 4ba1d9ef, debug? 0, fault address 0x00068bbd.

Systemereignisprotokolleinträge zum Ausführen von Drittanbietern Anwendungen:

Source: Application Popup
Description: Application popup: #APPNAME#.exe – Application Error : The 
application failed to initialize properly (0xc000007b). Click on OK 
to terminate the application.

Anwendungen, die ich erstellt habe und die. NET v4 Framework-Systemereignisprotokolle verwenden, sagen:

Source: .NET Runtime
Framework Version: v4.0.30319
Description: The process was terminated due to an internal error in the 
.NET Runtime at IP 791A8BBD (7914000) with exit code 80131506.

Anwendungen, die ich erstellt habe und die. NET v2 Framework-Systemereignisprotokolle verwenden, sagen:

Source: .NET Runtime
Description: .NET Runtime version 2.0.50727.3053 – Fatal Execution 
Engine Error (7A097706) (80131506)

Hier sind weitere Details zu meinem Blog - einschließlich allem, was ich bisher versucht habe, und mehr Details und Erzählungen.

Soweit Wiederherstellungspunkte gehen, ist mein ältester Wiederherstellungspunkt vor ein paar Wochen, an dem ich immer noch dieses Problem hatte, also denke ich nicht, diesen Punkt wiederherzustellen wird viel helfen.

Wie kann ich herausfinden, welcher Prozess das Problem verursacht, und dann den Computer reparieren?

Author: Jim W, 2010-10-01

3 answers

Da Sie sagen, dass das Problem nicht im abgesicherten Modus auftritt, ist es klar, dass dies durch eine installierte Anwendung, ein Add-On oder einen Treiber verursacht wird.

Angesichts des Aufwands, den Sie bereits in dieses Projekt investiert haben, würde ich empfehlen, die Festplatte neu zu formatieren und XP neu zu installieren, dann alle Produkte einzeln neu zu installieren und neu zu starten, um zu überprüfen, ob das Problem aufgetreten ist zurückgekehrt. Alternativ können Sie Produkte mit Revo Uninstaller deinstallieren, aber auch Revo kann eine besonders hinterhältige verpassen Installation.

Ehrlich gesagt riechen ausführbare Dateien, die beim Start geändert werden, nach einer Virusinfektion, weshalb ich in diesem Fall ausnahmsweise eine Neuformatierung empfehle.

 3
Author: harrymc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-05 05:54:25

Ihre Antwort könnte im ersten Absatz gewesen sein-Umwege entfernen. Gehen Sie zu Programme hinzufügen/entfernen, Umwege finden und entfernen.

Umwege: http://research.microsoft.com/en-us/projects/detours/

 0
Author: Mark Allen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-05 22:37:16

Ich würde versuchen, Dependency Walker zu verwenden. Profilieren Sie Ihr Programm und speichern Sie die Ausgabe. Booten Sie in den abgesicherten Modus und starten Sie erneut. Der Vergleich der Ausgabe kann weitere Informationen darüber liefern, wann das Programm geändert wird.

Sie können auch versuchen, WinDbg aus den Debugging-Tools für Windows zu verwenden. (Dieser Link ist für Treiberentwickler gedacht, aber ich habe WinDbg für.NET-Programme verwendet.), Um die debugging-Ausgabe, benötigen Sie das Windows-Symbol-Paket - für XP als auch.

 0
Author: Velociraptors,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-06 19:47:40