Assembly Binding Log Viewer-Tool (Fuslogvw.exe)
Im Assembly Binding Log Viewer-Tool werden Details zu Assemblybindungen angezeigt. Mit diesen Informationen lässt sich leichter diagnostizieren, weshalb zur Laufzeit in .NET Framework keine Assembly gefunden werden kann. Diese Fehler resultieren normalerweise aus einer Assembly, die am falschen Ort bereitgestellt wird, oder aus Abweichungen bei Versionsnummern oder Kulturen. Wenn Common Language Runtime eine Assembly nicht auffinden kann, wird dies in der Anwendung als TypeLoadException angezeigt.
So zeigen Sie den Inhalt des Protokolls für die Assemblybindung an
- Führen Sie Fuslogvw.exe von der SDK-Eingabeaufforderung aus.
Für jede fehlgeschlagene Assemblybindung wird ein Eintrag angezeigt. Darin werden folgende Daten angegeben: welche Anwendung die Bindung initialisiert hat, für welche Assembly die Bindung bestimmt ist (Name, Version, Kultur und öffentlicher Schlüssel) sowie Datum und Uhrzeit, wann der Fehler aufgetreten ist.
So ändern Sie die Anzeige des Protokollspeicherorts
Wählen Sie das Optionsfeld Standard zur Anzeige von Bindungsfehlern für alle Anwendungstypen. Protokolleinträge werden standardmäßig auf dem Datenträger in Verzeichnissen nach Benutzer im WinInet-Cache gespeichert.
Wählen Sie das Optionsfeld Benutzerdefiniert zur Anzeige von Bindungsfehlern in dem von Ihnen angegebenen Verzeichnis. Sie müssen den benutzerdefinierten Speicherort angeben, in dem die Protokolle von der Laufzeit gespeichert werden sollen, indem Sie den benutzerdefinierten Protokollspeicherort festlegen. Geben Sie dazu im Dialogfeld Protokolleinstellungen einen gültigen Verzeichnisnamen an. Dieses Verzeichnis sollte bis auf die Dateien, die von der Laufzeit erstellt werden, leer sein. Wenn es eine ausführbare Datei enthält, die einen zu protokollierenden Fehler erzeugt, wird der Fehler nicht protokolliert, da das Tool versucht, ein Verzeichnis mit dem Namen der ausführbaren Datei zu erstellen. Außerdem schlägt der Versuch fehl, eine ausführbare Datei vom Protokollspeicherort auszuführen.
Hinweis
Die Verwendung des voreingestellten Pfads für die Standardbindung wird empfohlen. Der voreingestellte Pfad für die Standardbindung wird während der Laufzeit im WinInet-Cache gespeichert und daher auch automatisch gelöscht. Wenn Sie einen benutzerdefinierten Bindungspfad festlegen, müssen Sie diesen selbst löschen.
So zeigen Sie Details für einen bestimmten Fehler an
Markieren Sie den Anwendungsnamen des gewünschten Eintrags.
Klicken Sie auf die Schaltfläche Protokoll anzeigen. Alternativ können Sie auch auf den markierten Eintrag doppelklicken.
Für den markierten Bindungsfehler werden folgende Details angezeigt:
Der Grund, warum die Bindung fehlgeschlagen ist, z. B. "Datei nicht gefunden" oder "Versionskonflikt".
Daten zur Anwendung, welche die Bindung initialisiert hat, z. B. Name und Stammverzeichnis (AppBase) der Anwendung sowie gegebenenfalls eine Beschreibung des privaten Suchpfads.
Die Identität der gesuchten Assembly.
Gegebenenfalls eine Beschreibung aller angewendeten Versionsrichtlinien (Anwendung, Herausgeber oder Administrator).
Angabe, ob die Assembly im globalen Assemblycache vorhanden ist.
Eine Liste aller bei der Untersuchung verwendeten URLs.
Das folgende Beispiel zeigt einen Protokolleintrag mit den Details einer fehlgeschlagenen Assemblybindung.
** Assembly Binder Log Entry (3/5/2002 @ 12:54:20 PM) **
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: C:\WINNT\Microsoft.NET\Framework\v1.0.3705\fusion.dll
Running under executable C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\graphicfailtest.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: DisplayName = graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : graphicfailtest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: Processing DEVPATH.
LOG: DEVPATH is not set. Falling through to regular bind.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.
So löschen Sie einen Eintrag aus dem Protokoll
Markieren Sie einen Eintrag.
Klicken Sie auf die Schaltfläche Eintrag löschen.
So löschen Sie alle Einträge aus dem Protokoll
- Klicken Sie auf die Schaltfläche Alle löschen.
So aktualisieren Sie die Benutzeroberfläche
- Klicken Sie auf die Schaltfläche Aktualisieren. Neue Protokolleinträge werden nicht automatisch in die Anzeige aufgenommen. Sie werden erst angezeigt, wenn Sie auf Aktualisieren klicken.
So ändern Sie die Protokolleinstellungen
- Klicken Sie auf die Schaltfläche Einstellungen, um das Dialogfeld Protokolleinstellungen zu öffnen.
So zeigen Sie das Dialogfeld Info an
- Klicken Sie auf die Schaltfläche Info.
Das Dialogfeld Protokolleinstellungen
Sie können das Dialogfeld Protokolleinstellungen verwenden, um die folgenden Aktionen auszuführen.
So deaktivieren Sie die Protokollierung
- Wählen Sie das Optionsfeld Protokoll deaktiviert aus. Beachten Sie, dass diese Option in der Standardeinstellung aktiviert ist.
So protokollieren Sie Assemblybindungen in Ausnahmen
Wählen Sie das Optionsfeld In Ausnahmetext protokollieren aus.
Im wichtigen Hinweis finden Sie Informationen über Assemblys, die als domänenneutrale Assemblys geladen werden.
So protokollieren Sie Assemblybindungsfehler
Wählen Sie das Optionsfeld Fehler von Bindungen an Datenträger protokollieren aus.
Im wichtigen Hinweis finden Sie Informationen über Assemblys, die als domänenneutrale Assemblys geladen werden.
So protokollieren Sie alle Assemblybindungen
Wählen Sie das Optionsfeld Alle Bindungen an Datenträger protokollieren aus.
Im wichtigen Hinweis finden Sie Informationen über Assemblys, die als domänenneutrale Assemblys geladen werden.
Wichtig
Wenn eine Assembly als domänenneutrale Assembly geladen wird, z. B. durch Festlegen der LoaderOptimization-Eigenschaft auf System.LoaderOptimization.MultiDomain oder System.LoaderOptimization.MultiDomainHost, kann das Aktivieren der Protokollierung in einigen Fällen zu Speicherverlust führen. Dies kann der Fall sein, wenn beim Laden eines domänenneutralen Moduls in eine Anwendungsdomäne ein Protokolleintrag erfolgt und später die Anwendungsdomäne entladen wird. Der Protokolleintrag wird möglicherweise erst freigegeben, wenn der Prozess beendet wird. Einige Debugger aktivieren die Protokollierung automatisch.
So aktivieren Sie einen benutzerdefinierten Protokollpfad
Wählen Sie das Optionsfeld Benutzerdefinierten Protokollpfad aktivieren aus.
Geben Sie den Pfad in das Textfeld Benutzerdefinierter Protokollpfad ein.
Hinweis
Assembly Binding Log Viewer-Tool (Fuslogvw.exe) verwendet den Internet Explorer (IE-)Cache zum Speichern des Bindungsprotokolls. Aufgrund gelegentlicher Beschädigungen des IE-Caches ist es möglich, dass Assembly Binding Log Viewer-Tool (Fuslogvw.exe) keine neuen Bindungsprotokolle mehr im Ansichtsfenster anzeigt. In Folge einer solchen Beschädigung kann die .NET-Bindungsinfrastruktur (Fusion) weder in das Bindungsprotokoll schreiben noch daraus lesen. (Dieses Problem tritt nicht auf, wenn Sie einen benutzerdefinierten Protokollpfad verwenden.) Um die Beschädigung zu beheben und Fusion wieder das Anzeigen von Bindungsprotokollen zu ermöglichen, löschen Sie den IE-Cache, indem Sie im Dialogfeld Internetoptionen von Internet Explorer die temporären Internetdateien löschen.
Wenn die nicht verwaltete Anwendung die Common Language Runtime durch Implementieren der IHostAssemblyManager-Schnittstelle und der IHostAssemblyStore-Schnittstelle hostet, können Protokolleinträge nicht im WinInet-Cache gespeichert werden. Um Protokolleinträge für benutzerdefinierte Hosts anzuzeigen, die diese Schnittstellen implementieren, müssen Sie einen alternativen Protokollpfad angeben.
Siehe auch
Referenz
.NET Framework-Tools
TypeLoadException Class
SDK-Eingabeaufforderung
Konzepte
Globaler Assemblycache
So sucht Common Language Runtime nach Assemblys