Fuslogvw.exe (Visionneuse du journal de liaison d’assembly)Fuslogvw.exe (Assembly Binding Log Viewer)

La Visionneuse du journal de liaison d’assembly affiche des détails sur les liaisons d’assemblys.The Assembly Binding Log Viewer displays details for assembly binds. Ces informations vous permettent d'identifier les raisons pour lesquelles le .NET Framework ne parvient pas à trouver un assembly au moment de l'exécution.This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. Ces échecs résultent généralement d'un assembly déployé au mauvais emplacement, d'une image native qui n'est plus valide ou d'une incompatibilité entre les numéros de version ou les cultures.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. L'échec de la localisation d'un assembly par le Common Language Runtime s'affiche d'ordinaire sous la forme de TypeLoadException dans votre application.The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application.

Important

Vous devez exécuter fuslogvw.exe avec les droits d'administrateur.You must run fuslogvw.exe with administrator privileges.

Cet outil est installé automatiquement avec Visual Studio.This tool is automatically installed with Visual Studio. Pour exécuter l’outil, utilisez l’invite de commandes développeur pour Visual Studio (ou l’invite de commandes Visual Studio dans Windows 7) avec des informations d’identification d’administrateur.To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7) with administrator credentials. Pour plus d'informations, consultez Invites de commandes.For more information, see Command Prompts.

À l'invite de commandes, tapez le texte suivant :At the command prompt, type the following:

fuslogvw  

La visionneuse affiche une entrée pour chaque liaison d'assembly ayant échoué.The viewer displays an entry for each failed assembly bind. Pour chaque échec, la visionneuse décrit l'application qui a lancé la liaison, l'assembly concerné par la liaison (y compris le nom, la version, la culture et la clé publique), ainsi que la date et l'heure de l'échec.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.

Pour modifier l'affichage de l'emplacement du journalTo change the log location view

  1. Activez la case d’option Par défaut pour afficher les échecs de liaison pour tous les types d’applications.Select the Default option button to view bind failures for all application types. Par défaut, les entrées de journal sont stockées dans des répertoires par utilisateur sur le disque dans le cache WinInet.By default, log entries are stored in per-user directories on disk in the wininet cache.

  2. Sélectionnez la case d’option Personnalisé pour afficher les échecs de liaison dans un répertoire personnalisé que vous spécifiez.Select the Custom option button to view bind failures in a custom directory that you specify. Vous devez spécifier l’emplacement personnalisé dans lequel vous souhaitez que l’exécution stocke les journaux en affectant un nom de répertoire valide comme emplacement du journal personnalisé dans la boîte de dialogue Paramètres du journal.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. Ce répertoire doit être propre et contenir uniquement les fichiers générés par le runtime.This directory should be clean, and only contain files that the runtime generates. S'il contient un exécutable qui génère un échec devant être enregistré dans le journal, ce dernier ne sera pas enregistré, car l'outil tente de créer un répertoire portant le même nom que l'exécutable.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. En outre, toute tentative d'exécution d'un exécutable à partir de l'emplacement du journal échouera.In addition, an attempt to run an executable from the log location will fail.

    Notes

    L'emplacement des liaisons par défaut est préférable à l'emplacement des liaisons personnalisé.The default bind location is preferable to the custom bind location. Le runtime stocke l'emplacement des liaisons par défaut dans le cache WinInet et le vide par conséquent automatiquement. Si vous spécifiez un emplacement des liaisons personnalisé, vous devez vous-même le vider.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.

Pour afficher des détails sur un échec spécifiqueTo view details about a specific failure

  1. Sélectionnez le nom de l'application de l'entrée souhaitée dans la visionneuse.Select the application name of the desired entry in the viewer.

  2. Cliquez sur le bouton Afficher le journal.Click the View Log button. Vous pouvez également double-cliquer sur l'entrée sélectionnée.Alternately, you can double-click the selected entry.

    L'outil affiche les détails suivants sur l'échec de la liaison sélectionné :The tool displays the following details about the selected bind failure:

    • La raison spécifique de l'échec de la liaison, telle que « fichier introuvable » ou « incompatibilité entre les versions »The specific reason the bind failed, such as "file not found" or "version mismatch".

    • Des informations sur l'application qui a lancé la liaison, parmi lesquelles son nom, le répertoire racine de l'application (AppBase) et le cas échéant, une description du chemin de recherche privé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.

    • L'identité de l'assembly recherché par l'outilThe identity of the assembly the tool is looking for.

    • Une description des stratégies de version de l'application, de l'éditeur ou de l'administrateur qui ont été appliquéesA description of any Application, Publisher, or Administrator version policies that have been applied.

    • Si l’assembly a été trouvé dans le Global Assembly CacheWhether the assembly was found in the global assembly cache.

    • Une liste de toutes les URL recherchéesA list of all probing URLs.

L'exemple d'entrée de journal suivant montre des informations détaillées sur l'échec d'une liaison d'assembly.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.  

Pour supprimer une seule entrée du journalTo delete a single entry from the log

  1. Sélectionnez une entrée dans la visionneuse.Select an entry in the viewer.

  2. Cliquez sur le bouton Supprimer l’entrée.Click the Delete Entry button.

Pour supprimer toutes les entrées du journalTo delete all entries from the log

  • Cliquez sur le bouton Supprimer tout.Click the Delete All button.

Pour actualiser l'interface utilisateurTo refresh the user interface

  • Cliquez sur le bouton Actualiser.Click the Refresh button. La visionneuse ne détecte pas automatiquement les nouvelles entrées du journal pendant son exécution.The viewer does not automatically detect new log entries while it is running. Vous devez utiliser le bouton Actualiser pour les afficher.You must use the Refresh button to display them.

Pour modifier les paramètres du journalTo change the log settings

  • Cliquez sur le bouton Paramètres pour ouvrir la boîte de dialogue Paramètres du journal.Click the Settings button to open the Log Settings dialog.

Pour afficher la boîte de dialogue À propos deTo view the About dialog

  • Cliquez sur le bouton À propos de.Click the About button.

Liaison de journaux pour des Images nativesBinding Logs for Native Images

Par défaut, Fuslogvw.exe enregistre les demandes de liaison d'assembly normales.By default, Fuslogvw.exe logs normal assembly bind requests. Vous pouvez également enregistrer des liaisons d’assemblys pour les images natives qui ont été créées à l’aide de l’outil Ngen.exe (Native Image Generator).Alternatively, you can log assembly binds for native images that were created using the Ngen.exe (Native Image Generator).

Pour enregistrer des liaisons d'assemblys pour les images nativesTo log assembly binds for native images

  • Dans le groupe Catégories de journaux, activez la case d’option Images natives.In the Log Categories group, select the Native Images option button.

Le journal suivant affiche un échec provoqué par une dépendance qui n'existait pas au moment de la création de l'image native pour l'application.The following log shows a failure caused by a dependency that did not exist when the native image was created for the application. Si les dépendances au moment de l'exécution diffèrent des dépendances lorsque Ngen.exe est exécuté, la liaison à une image native n'est pas autorisée.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.  

Le journal suivant montre un échec de liaison à une image native qui s'est produit parce que les paramètres de sécurité sur l'ordinateur au moment où l'application a été exécutée étaient différents des paramètres de sécurité en vigueur au moment où l'image native a été créée.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.  

La boîte de dialogue Paramètres du journalThe Log Settings Dialog

Vous pouvez utiliser la boîte de dialogue Paramètres du journal pour effectuer les actions suivantes.You can use the Log Settings dialog to perform the following actions.

Pour désactiver l'enregistrementTo disable logging

  • Activez la case d’option Journal désactivé.Select the Log disabled option button. Notez que cette option est sélectionnée par défaut.Note that this option is selected by default.

Pour enregistrer des liaisons d'assemblys dans les exceptionsTo log assembly binds in exceptions

  • Activez la case d’option Enregistrer dans le texte de l’exception.Select the Log in exception text option button. Seules les informations les moins détaillées du journal de fusion sont stockées dans un texte d'exception.Only the least detailed fusion log information is logged in exception text. Pour afficher des informations complètes, utilisez un des autres paramètres.To view full information, use one of the other settings.

    Consultez la Remarque importante relative aux assemblys chargés comme étant indépendants du domaine.See the Important note regarding assemblies that are loaded as domain neutral.

Pour enregistrer des échecs de liaison d'assemblysTo log assembly bind failures

  • Activez la case d’option Enregistrer les échecs de liaison sur le disque.Select the Log bind failures to disk option button.

    Consultez la Remarque importante relative aux assemblys chargés comme étant indépendants du domaine.See the Important note regarding assemblies that are loaded as domain neutral.

Pour enregistrer toutes les liaisons d'assemblysTo log all assembly binds

  • Activez la case d’option Enregistrer toutes les liaisons sur le disque.Select the Log all binds to disk option button.

    Consultez la Remarque importante relative aux assemblys chargés comme étant indépendants du domaine.See the Important note regarding assemblies that are loaded as domain neutral.

Important

Lorsqu'un assembly est chargé comme étant indépendant du domaine, par exemple en définissant la propriété LoaderOptimization à LoaderOptimization.MultiDomain ou LoaderOptimization.MultiDomainHost, l'activation de l'enregistrement peut entraîner une fuite de mémoire dans certains cas.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. Cela peut arriver si une entrée de journal est faite lorsqu'un module indépendant du domaine est chargé dans un domaine d'application, et qu'ultérieurement le domaine d'application est déchargé.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. L'entrée de journal ne peut pas être diffusée avant la fin du processus.The log entry might not be released until the process ends. Certains débogueurs activent automatiquement l'enregistrement.Some debuggers automatically turn on logging.

Pour activer un chemin de journal personnaliséTo enable a custom log path

  1. Activez la case d’option Activer le chemin de journal personnalisé.Select the Enable custom log path option button.

  2. Entrez le chemin dans la zone de texte Chemin du journal personnalisé.Enter the path into the Custom log path text box.

Notes

La visionneuse du journal de liaison d’assembly (Fuslogvw.exe) utilise le cache Internet Explorer (IE) pour stocker son journal de liaison.The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log. En raison de la perte d’intégrité occasionnelle du cache IE, la visionneuse du journal de liaison d’assembly (Fuslogvw.exe) peut parfois cesser d’afficher les nouveaux journaux de liaison dans la fenêtre d’affichage.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. Suite à cette perte d’intégrité, l’infrastructure de liaison .NET (fusion) ne peut pas écrire ou lire dans le journal de liaison.As a result of this corruption, the .NET binding infrastructure (fusion) cannot write to or read from the binding log. (Ce problème ne se pose pas si vous utilisez un chemin d'accès de journal personnalisé.) Pour résoudre le problème de perte d'intégrité et permettre à la fusion d'afficher à nouveau les journaux de liaison, videz le cache IE en supprimant les fichiers Internet temporaires à partir de la boîte de dialogue Options Internet d'Internet Explorer.(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.

Si votre application non managée héberge le Common Language Runtime en implémentant les interfaces IHostAssemblyManager et IHostAssemblyStore, les entrées de journal ne peuvent pas être stockées dans le cache de WinInet.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. Pour consulter les entrées de journal correspondant aux hôtes personnalisés qui implémentent ces interfaces, vous devez spécifier un autre chemin d'accès au journal.To view log entries for custom hosts that implement these interfaces, you must specify an alternate log path.

Pour activer la journalisation pour les applications qui s'exécutent dans le conteneur d'application WindowsTo enable logging for apps running in the Windows app container

  1. Activez un chemin du journal personnalisé, comme décrit dans la procédure précédente.Enable a custom log path, as described in the previous procedure. Par défaut, les applications qui s'exécutent dans le conteneur d'application Windows ont un accès limité au disque dur.By default, apps that are running in the Windows app container have limited access to the hard disk. Le répertoire spécifié dispose d'un accès en lecture/écriture pour toutes les applications du conteneur d'application.The directory you specify will have read/write access for all apps in the app container.

  2. Cochez la case Activer la journalisation immersive.Select the Enable immersive logging check box.

    Notes

    Cette zone est activée uniquement sur Windows 8 ou version ultérieure.This box is enabled only on Windows 8 or later.

Voir aussiSee also