Vor einigen Wochen hatte mein Firmenlaptop merkwürdige Probleme. Ich konnte den Microsoft Developer Web Server nicht mehr starten (über Visual Studio-> Debug). Später stellte ich fest, dass ich keine .NET-Anwendung ausführen konnte.
Im Gespräch mit Microsoft CLR-Spezialisten nach der Überprüfung meiner DMP-Dateien, sagte er
Beim Laden in Ihren Prozess werden 8 Byte mit dem Offset 0 × 168 in den EXE-Dateien auf 0 gesetzt. Dies ist das Problem, das zum Fehlschlagen der CLR führt. Diese Bits sind in der Datei, die Sie mir zur Verfügung gestellt haben, richtig eingestellt.
C: \ Windows \ System32 \ Detoured.dll wird in den Prozess geladen. Dies bedeutet für mich, dass die Umleitungsbibliothek auf Ihrem Computer verwendet wird, um das Verhalten dieser Prozesse zu ändern.
Ich habe auch herausgefunden, dass beim Booten im abgesicherten Modus alles funktioniert.
Außerdem habe ich herausgefunden, dass die Anwendung funktioniert, wenn ich mit der rechten Maustaste auf eine ausführbare .NET-Datei klicke und "Ausführen als" wähle und meine derzeit angemeldeten Benutzeranmeldeinformationen eingebe. Es funktioniert einfach nicht, wenn ich auf die App doppelklicke.
Es gibt viele Systemereignismeldungen und Dr. Watson-Tippfehler. Hier sind einige, die ich bekomme:
Wenn Sie MS Developer Web Server mit Visual Studio starten, wird im Popup-Fenster "Nachricht" Folgendes angezeigt:
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 Apps von Drittanbietern:
Source: Application Popup
Description: Application popup: #APPNAME#.exe – Application Error : The
application failed to initialize properly (0xc000007b). Click on OK
to terminate the application.
Von mir erstellte Anwendungen, 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.
Von mir erstellte Anwendungen, 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 finden Sie weitere Details in meinem Blog - einschließlich allem, was ich bisher ausprobiert habe, sowie weitere Details und Erzählungen.
Was die Wiederherstellungspunkte betrifft, so ist mein ältester Wiederherstellungspunkt vor ein paar Wochen, an dem ich immer noch dieses Problem hatte, so dass ich nicht denke, dass das Wiederherstellen dieses Punkts viel hilft.
Wie kann ich herausfinden, welcher Prozess das Problem verursacht, und dann den Computer reparieren?
quelle
Antworten:
Da Sie sagen, dass das Problem nicht im abgesicherten Modus auftritt, ist klar, dass dies durch eine installierte Anwendung, ein installiertes Add-On oder einen installierten Treiber verursacht wird.
In Anbetracht der Anstrengungen, die Sie bereits in dieses Projekt investiert haben, würde ich empfehlen, die Festplatte neu zu formatieren und XP neu zu installieren, und dann alle Produkte einzeln neu zu installieren und neu zu starten, um zu prüfen, ob das Problem wieder aufgetreten ist. Alternativ können Sie Produkte mit dem Revo Uninstaller deinstallieren, aber auch Revo kann eine besonders raffinierte Installation übersehen.
Ehrlich gesagt riechen ausführbare Dateien, die beim Start geändert werden, nach einer Virusinfektion, weshalb ich in diesem Fall ausnahmsweise eine Neuformatierung empfehle.
quelle
Ihre Antwort war möglicherweise im ersten Absatz - Umwege entfernen. Gehen Sie zu Programme hinzufügen / entfernen, suchen Sie nach Umleitungen und entfernen Sie sie.
Umwege: http://research.microsoft.com/en-us/projects/detours/
quelle
Ich würde versuchen, Dependency Walker zu verwenden . Profilieren Sie Ihr Programm und speichern Sie die Ausgabe. Starten Sie den abgesicherten Modus und das Profil erneut. Durch Vergleichen der Ausgabe erhalten Sie möglicherweise weitere Informationen darüber, wann das Programm geändert wird.
Sie können auch versuchen, WinDbg aus den Debugging Tools für Windows zu verwenden . (Dieser Link richtet sich an Treiberentwickler, aber ich habe WinDbg für .NET-Programme verwendet.) Um die bestmögliche Debug-Ausgabe zu erhalten, benötigen Sie auch das Windows-Symbolpaket für XP.
quelle