Fuslogvw.exe (Assembly Binding Log Viewer-Tool)Fuslogvw.exe (Assembly Binding Log Viewer)

In der Assemblybindungs-Protokollanzeige werden Details zu Assemblybindungen angezeigt.The Assembly Binding Log Viewer displays details for assembly binds. Mit diesen Informationen lässt sich leichter diagnostizieren, weshalb zur Laufzeit in .NET Framework keine Assembly gefunden werden kann.This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. Diese Fehler resultieren normalerweise aus einer Assembly, die am falschen Ort bereitgestellt wird, einem systemeigenen Abbild, das nicht mehr gültig ist, oder aus Abweichungen bei Versionsnummern oder Kulturen.These failures are usually the result of an assembly deployed to the wrong location, a native image that is no longer valid, or a mismatch in version numbers or cultures. Wenn die Common Language Runtime eine Assembly nicht finden kann, wird dies in der Anwendung als TypeLoadException angezeigt.The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application.

Wichtig

Sie müssen "fuslogvw.exe" mit Administratorrechten ausführen.You must run fuslogvw.exe with administrator privileges.

Dieses Tool wird automatisch mit Visual Studio installiert.This tool is automatically installed with Visual Studio. Zum Ausführen des Tools verwenden Sie die Developer-Eingabeaufforderung (oder die Visual Studio-Eingabeaufforderung in Windows 7) mit Administratoranmeldeinformationen.To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7) with administrator credentials. Weitere Informationen finden Sie unter Eingabeaufforderungen.For more information, see Command Prompts.

Geben Sie an der Eingabeaufforderung Folgendes ein:At the command prompt, type the following:

fuslogvw  

Für jede fehlgeschlagene Assemblybindung wird ein Eintrag angezeigt.The viewer displays an entry for each failed assembly bind. Darin sind folgende Daten enthalten: 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.For each failure, the viewer describes the application that initiated the bind; the assembly the bind is for, including name, version, culture and public key; and the date and time of the failure.

So ändern Sie die Anzeige des ProtokollspeicherortsTo change the log location view

  1. Wählen Sie das Optionsfeld Standard aus, um Bindungsfehler für alle Anwendungstypen anzuzeigen.Select the Default option button to view bind failures for all application types. Protokolleinträge werden standardmäßig auf dem Datenträger in Verzeichnissen nach Benutzer im WinInet-Cache gespeichert.By default, log entries are stored in per-user directories on disk in the wininet cache.

  2. Wählen Sie das Optionsfeld Benutzerdefiniert aus, um Bindungsfehler in dem von Ihnen angegebenen, benutzerdefinierten Verzeichnis anzuzeigen.Select the Custom option button to view bind failures in a custom directory that you specify. Sie müssen den benutzerdefinierten Speicherort angeben, in dem die Protokolle von der Runtime gespeichert werden sollen, indem Sie den benutzerdefinierten Protokollspeicherort festlegen. Geben Sie dazu im Dialogfeld Protokolleinstellungen einen gültigen Verzeichnisnamen an.You must specify the custom location where you want the runtime to store the logs by setting the custom log location in the Log Settings dialog to a valid directory name. Dieses Verzeichnis sollte bis auf die Dateien, die von der Laufzeit generiert werden, leer sein.This directory should be clean, and only contain files that the runtime generates. 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.If it contains an executable that generates a failure to be logged, the failure will not be logged because the tool tries to create a directory with the same name as the executable. Außerdem schlägt der Versuch fehl, eine ausführbare Datei vom Protokollspeicherort auszuführen.In addition, an attempt to run an executable from the log location will fail.

    Hinweis

    Anstelle des benutzerdefinierten Bindungspfads wird die Verwendung des standardmäßigen Bindungspfads empfohlen.The default bind location is preferable to the custom bind location. Der standardmäßige Bindungspfad 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.The runtime stores the default bind location in the wininet cache, and therefore automatically cleans it out. If you specify a custom bind location, you are responsible for cleaning it out.

So zeigen Sie Details für einen bestimmten Fehler anTo view details about a specific failure

  1. Markieren Sie den Anwendungsnamen des gewünschten Eintrags.Select the application name of the desired entry in the viewer.

  2. Klicken Sie auf die Schaltfläche Protokolldatei anzeigen.Click the View Log button. Alternativ können Sie auch auf den markierten Eintrag doppelklicken.Alternately, you can double-click the selected entry.

    Für den markierten Bindungsfehler werden folgende Details angezeigt:The tool displays the following details about the selected bind failure:

    • Der Grund, warum die Bindung fehlgeschlagen ist, z. B. "Datei nicht gefunden" oder "Versionskonflikt".The specific reason the bind failed, such as "file not found" or "version mismatch".

    • Daten zur Anwendung, welche die Bindung initialisiert hat, z. B. Name und Stammverzeichnis (AppBase) der Anwendung sowie gegebenenfalls eine Beschreibung des privaten Suchpfades.Information about the application that initiated the bind, including its name, the application's root directory (AppBase), and a description of the private search path, if there is one.

    • Die Identität der gesuchten Assembly.The identity of the assembly the tool is looking for.

    • Gegebenenfalls eine Beschreibung aller angewendeten Versionsrichtlinien (Anwendung, Herausgeber oder Administrator).A description of any Application, Publisher, or Administrator version policies that have been applied.

    • Angabe, ob die Assembly im globalen Assemblycache vorhanden ist.Whether the assembly was found in the global assembly cache.

    • Eine Liste aller bei der Untersuchung verwendeten URLs.A list of all probing URLs.

Das folgende Beispiel zeigt einen Protokolleintrag mit den Details einer fehlgeschlagenen Assemblybindung.The following sample log entry shows detailed information about a failed assembly bind.

*** Assembly Binder Log Entry  (3/5/2007 @ 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\v2.0.50727\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/graphicfailtest.resources.DLL.  
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.DLL.  
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.EXE.  
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.EXE.  
LOG: All probing URLs attempted and failed.  

So löschen Sie einen Eintrag aus dem ProtokollTo delete a single entry from the log

  1. Markieren Sie einen Eintrag.Select an entry in the viewer.

  2. Klicken Sie auf die Schaltfläche Eintrag löschen.Click the Delete Entry button.

So löschen Sie alle Einträge aus dem ProtokollTo delete all entries from the log

  • Klicken Sie auf die Schaltfläche Alles löschen.Click the Delete All button.

So aktualisieren Sie die BenutzeroberflächeTo refresh the user interface

  • Klicken Sie auf die Schaltfläche Aktualisieren.Click the Refresh button. Neue Protokolleinträge werden nicht automatisch in die Anzeige aufgenommen.The viewer does not automatically detect new log entries while it is running. Sie werden erst angezeigt, wenn Sie auf Aktualisieren klicken.You must use the Refresh button to display them.

So ändern Sie die ProtokolleinstellungenTo change the log settings

  • Klicken Sie auf die Schaltfläche Einstellungen, um das Dialogfeld Protokolleinstellungen zu öffnen.Click the Settings button to open the Log Settings dialog.

So zeigen Sie das Dialogfeld "Info" anTo view the About dialog

  • Klicken Sie auf die Schaltfläche Info.Click the About button.

Binden von Protokollen für native AbbilderBinding Logs for Native Images

Standardmäßig protokolliert "Fuslogvw.exe" normale Assembly-Bindungsanforderungen.By default, Fuslogvw.exe logs normal assembly bind requests. Alternativ können Sie Assemblybindungen für native Bilder protokollieren, die mit dem Native Image Generator (Ngen.exe) erstellt wurden.Alternatively, you can log assembly binds for native images that were created using the Ngen.exe (Native Image Generator).

So protokollieren Sie Assemblybindungen für systemeigene AbbildungenTo log assembly binds for native images

  • Wählen Sie in der Gruppe Kategorien protokollieren das Optionsfeld Native Bilder aus.In the Log Categories group, select the Native Images option button.

Im folgenden Protokoll ist ein Fehler aufgeführt, der von einer Abhängigkeit ausgelöst wurde, die nicht vorhanden war, als das systemeigene Abbild für die Anwendung erstellt wurde.The following log shows a failure caused by a dependency that did not exist when the native image was created for the application. Wenn sich die Abhängigkeiten zur Laufzeit von den Abhängigkeiten beim Ausführen von "Ngen.exe" unterscheiden, ist das Binden an ein systemeigenes Abbild nicht zulässig.If the dependencies at run time differ from the dependencies when Ngen.exe is run, binding to a native image is not allowed.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:22:07 PM) ***  
  
The operation failed.  
Bind result: hr = 0x80070002. The system cannot find the file specified.  
  
Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll  
Running under executable  E:\test\App.exe  
--- A detailed error log follows.   
  
LOG: Start binding of native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.  
LOG: IL assembly loaded from E:\test\App.exe.  
LOG: Start validating native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.  
LOG: Start validating all the dependencies.  
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.  
LOG: Dependency evaluation succeeded.  
LOG: [Level 1]Start validating IL dependency b, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.  
WRN: Dependency assembly was not found at ngen time, but is found at binding time. Disallow using this native image.  
WRN: No matching native image found.  
LOG: Bind to native image assembly did not succeed. Use IL image.  

Im folgenden Protokoll ist ein Bindungsfehler für das systemeigene Abbild aufgeführt, der aufgetreten, weil sich die Sicherheitseinstellungen auf dem Computer, auf dem die Anwendung ausgeführt wurde, von den Sicherheitseinstellungen unterscheiden, die beim Erstellen des systemeigenen Abbilds festgelegt waren.The following log shows a native image binding failure that occurred because the security settings on the computer when the application was run were different from the security settings at the time the native image was created.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:29:09 PM) ***  
  
The operation failed.  
Bind result: hr = 0x80004005. Unspecified error  
  
Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll  
Running under executable  E:\test\Application101622.exe  
--- A detailed error log follows.   
  
LOG: Start binding of native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.  
LOG: IL assembly loaded from E:\test\Application101622.exe.  
LOG: Start validating native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.  
LOG: Start validating all the dependencies.  
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.  
LOG: Dependency evaluation succeeded.  
LOG: [Level 1]Start validating IL dependency Dependency101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.  
LOG: Dependency evaluation succeeded.  
LOG: Validation of dependencies succeeded.  
LOG: Start loading all the dependencies into load context.  
LOG: Loading of dependencies succeeded.  
LOG: Bind to native image succeeded.  
Native image has correct version information.  
Attempting to use native image E:\Windows\assembly\NativeImages_v2.0.50727_64\Application101622\1ac7fadabec4f72575d807501e9fdc72\Application101622.ni.exe.  
Rejecting native image because it failed the security check. The assembly's permissions must have changed since the time it was ngenned, or it is running with a different security context.  
Discarding native image.  

Das Dialogfeld "Protokolleinstellungen"The Log Settings Dialog

Sie können das Dialogfeld Protokolleinstellungen verwenden, um die folgenden Aktionen auszuführen.You can use the Log Settings dialog to perform the following actions.

So deaktivieren Sie die ProtokollierungTo disable logging

  • Wählen Sie das Optionsfeld Protokoll deaktiviert aus.Select the Log disabled option button. Beachten Sie, dass diese Option in der Standardeinstellung aktiviert ist.Note that this option is selected by default.

So protokollieren Sie Assemblybindungen in AusnahmenTo log assembly binds in exceptions

  • Wählen Sie das Optionsfeld In Ausnahmetext protokollieren aus.Select the Log in exception text option button. Nur die am wenigsten ausführlichen Fusionsprotokollinformationen werden in Ausnahmetext protokolliert.Only the least detailed fusion log information is logged in exception text. Um die vollständigen Informationen anzuzeigen, müssen Sie eine der anderen Einstellungen verwenden.To view full information, use one of the other settings.

    Im wichtigen Hinweis finden Sie Informationen über Assemblys, die als domänenneutrale Assemblys geladen werden.See the Important note regarding assemblies that are loaded as domain neutral.

So protokollieren Sie AssemblybindungsfehlerTo log assembly bind failures

  • Wählen Sie das Optionsfeld Fehler von Bindungen an Datenträger protokollieren aus.Select the Log bind failures to disk option button.

    Im wichtigen Hinweis finden Sie Informationen über Assemblys, die als domänenneutrale Assemblys geladen werden.See the Important note regarding assemblies that are loaded as domain neutral.

So protokollieren Sie alle AssemblybindungenTo log all assembly binds

  • Wählen Sie das Optionsfeld Alle Bindungen an Datenträger protokollieren aus.Select the Log all binds to disk option button.

    Im wichtigen Hinweis finden Sie Informationen über Assemblys, die als domänenneutrale Assemblys geladen werden.See the Important note regarding assemblies that are loaded as domain neutral.

Wichtig

Wenn eine Assembly als domänenneutrale Assembly geladen wird, z. B. durch Festlegen der LoaderOptimization-Eigenschaft auf LoaderOptimization.MultiDomain oder LoaderOptimization.MultiDomainHost, kann das Aktivieren der Protokollierung in einigen Fällen zu Speicherverlust führen.When an assembly is loaded as domain neutral, for example by setting the LoaderOptimization property to LoaderOptimization.MultiDomain or LoaderOptimization.MultiDomainHost, turning on logging might leak memory in some cases. 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.This can happen if a log entry is made when a domain-neutral module is loaded into an application domain, and later the application domain is unloaded. Der Protokolleintrag wird möglicherweise erst freigegeben, wenn der Prozess beendet wird.The log entry might not be released until the process ends. Einige Debugger aktivieren die Protokollierung automatisch.Some debuggers automatically turn on logging.

So aktivieren Sie einen benutzerdefinierten ProtokollpfadTo enable a custom log path

  1. Wählen Sie das Optionsfeld Benutzerdefinierten Protokollpfad aktivieren aus.Select the Enable custom log path option button.

  2. Geben Sie den Pfad in das Textfeld Benutzerdefinierter Protokollpfad ein.Enter the path into the Custom log path text box.

Hinweis

Der Assembly Binding Log Viewer (Fuslogvw.exe) verwendet den Internet Explorer-Cache zum Speichern des Bindungsprotokolls.The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log. Aufgrund gelegentlicher Beschädigungen des IE-Caches ist es möglich, dass der Assembly Binding Log Viewer (Fuslogvw.exe) keine neuen Bindungsprotokolle mehr im Ansichtsfenster anzeigt.Due to occasional corruption in the IE cache, the Assembly Binding Log Viewer (Fuslogvw.exe) can sometimes stop showing new binding logs in the viewing window. In Folge einer solchen Beschädigung kann die .NET-Bindungsinfrastruktur (Fusion) weder in das Bindungsprotokoll schreiben noch daraus lesen.As a result of this corruption, the .NET binding infrastructure (fusion) cannot write to or read from the binding log. (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, müssen Sie den IE-Cache löschen. Löschen Sie dazu im Dialogfeld "Internetoptionen" von Internet Explorer die temporären Internetdateien.(This issue is not encountered if you use a custom log path.) To fix the corruption and allow fusion to show binding logs again, clear the IE cache by deleting temporary internet files from within the IE Internet Options dialog.

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.If your unmanaged application hosts the common language runtime by implementing the IHostAssemblyManager and IHostAssemblyStore interfaces, log entries can't be stored in the wininet cache. Um Protokolleinträge für benutzerdefinierte Hosts anzuzeigen, die diese Schnittstellen implementieren, müssen Sie einen alternativen Protokollpfad angeben.To view log entries for custom hosts that implement these interfaces, you must specify an alternate log path.

So aktivieren Sie die Protokollierung für im Windows-App-Container ausgeführte AppsTo enable logging for apps running in the Windows app container

  1. Aktivieren Sie einen benutzerdefinierten Protokollpfad, wie im vorherigen Verfahren beschrieben.Enable a custom log path, as described in the previous procedure. Standardmäßig verfügen Apps, die im Windows-App-Container ausgeführt, über eingeschränkten Zugriff auf die Festplatte.By default, apps that are running in the Windows app container have limited access to the hard disk. Das Verzeichnis, das Sie angeben, erhält Lese-/Schreibzugriff für alle Apps im App-Container.The directory you specify will have read/write access for all apps in the app container.

  2. Aktivieren Sie das Kontrollkästchen Immersive Protokollierung aktivieren.Select the Enable immersive logging check box.

    Hinweis

    Dieses Kontrollkästchen ist nur unter Windows 8 oder höher aktiviert.This box is enabled only on Windows 8 or later.

Siehe auchSee Also

TypeLoadException
ExtrasTools
Globaler AssemblycacheGlobal Assembly Cache
So sucht Common Language Runtime nach AssemblysHow the Runtime Locates Assemblies
EingabeaufforderungenCommand Prompts