Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La visionneuse du journal de liaison d’assembly affiche les détails des liaisons d’assembly. Ces informations vous aident à diagnostiquer pourquoi le .NET Framework ne peut pas localiser un assembly au moment de l’exécution. Ces échecs sont généralement le résultat d’un assembly déployé à un emplacement incorrect, d’une image native qui n’est plus valide ou d’une incompatibilité dans les numéros de version ou les cultures. L’échec du Common Language Runtime pour localiser un assembly s’affiche généralement sous la forme d’une TypeLoadException application.
Important
Vous devez exécuter fuslogvw.exe avec des privilèges d’administrateur.
Cet outil est installé automatiquement avec Visual Studio. Pour exécuter l’outil, utilisez l’invite de commandes développeur Visual Studio ou Visual Studio Developer PowerShell avec les informations d’identification de l’administrateur.
Entrez la commande suivante à l'invite de commande :
fuslogvw
La visionneuse affiche une entrée pour chaque liaison d’assembly ayant échoué. Pour chaque échec, la visionneuse décrit :
- l’application qui a lancé la liaison
- l’assembly pour lequel la liaison concerne, notamment le nom, la version, la culture et la clé publique
- date et heure de l’échec
Comment...
- Modifier l’affichage de l’emplacement du journal
- Afficher des détails sur un échec spécifique
- Supprimer des entrées
- Actualiser l’interface utilisateur
- Modifier les paramètres du journal
- Afficher la boîte de dialogue À propos
Modifier l’affichage de l’emplacement du journal
Sélectionnez le bouton d’option Par défaut pour afficher les échecs de liaison pour tous les types d’applications. Par défaut, les entrées de journal sont stockées dans des répertoires par utilisateur sur le disque dans le cache wininet.
Sélectionnez le bouton d’option personnalisée pour afficher les échecs de liaison dans un répertoire personnalisé que vous spécifiez. Vous devez spécifier l’emplacement personnalisé où vous souhaitez que le runtime stocke les journaux en définissant l’emplacement du journal personnalisé dans la boîte de dialogue Paramètres du journal sur un nom de répertoire valide. Ce répertoire doit être propre et contenir uniquement des fichiers générés par le runtime. S’il contient un exécutable qui génère un échec de journalisation, l’échec n’est pas journalisé, car l’outil tente de créer un répertoire portant le même nom que l’exécutable. En outre, une tentative d’exécution d’un exécutable à partir de l’emplacement du journal échoue.
Note
L’emplacement de liaison par défaut est préférable à l’emplacement de liaison personnalisé. Le runtime stocke l’emplacement de liaison par défaut dans le cache wininet, et le nettoie donc automatiquement. Si vous spécifiez un emplacement de liaison personnalisé, vous êtes responsable du nettoyage.
Afficher des détails sur un échec spécifique
Sélectionnez le nom de l’application de l’entrée souhaitée dans la visionneuse.
Cliquez sur le bouton Afficher le journal . Vous pouvez également double-cliquer sur l’entrée sélectionnée.
L’outil affiche les détails suivants sur l’échec de liaison sélectionné :
La raison spécifique de l’échec de la liaison, par exemple « fichier introuvable » ou « incompatibilité de version ».
Informations sur l’application qui a lancé la liaison, y compris son nom, le répertoire racine de l’application (AppBase) et une description du chemin de recherche privé, le cas échéant.
Identité de l’assembly que l’outil recherche.
Description de toutes les stratégies de version d’application, de serveur de publication ou d’administrateur qui ont été appliquées.
Indique si l’assembly a été trouvé dans le Global Assembly Cache.
Liste de toutes les URL de détection.
L’exemple d’entrée de journal suivant montre des informations détaillées sur une liaison d’assembly ayant échoué.
*** 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.
Supprimer des entrées
Pour supprimer une seule entrée du journal :
Sélectionnez une entrée dans la visionneuse.
Cliquez sur le bouton Supprimer l’entrée .
Pour supprimer toutes les entrées du journal :
- Cliquez sur le bouton Supprimer tout .
Actualiser l’interface utilisateur
- Cliquez sur le bouton Actualiser . La visionneuse ne détecte pas automatiquement les nouvelles entrées de journal pendant son exécution. Vous devez utiliser le bouton Actualiser pour les afficher.
Modifier les paramètres du journal
Cliquez sur le bouton Paramètres pour ouvrir la boîte de dialogue Paramètres du journal .
Afficher la boîte de dialogue À propos
Cliquez sur le bouton À propos .
Liaison des journaux d’activité pour les images natives
Par défaut, Fuslogvw.exe journalise les demandes normales de liaison d’assembly. Vous pouvez également consigner des liaisons d’assembly pour les images natives créées à l’aide de l'Ngen.exe (générateur d’images natives).
Liaisons d’assembly de journal pour les images natives
- Dans le groupe Catégories de journaux , sélectionnez le bouton d’option Images natives .
Le journal suivant montre un échec provoqué par une dépendance qui n’existait pas lorsque l’image native a été créée pour l’application. Si les dépendances au moment de l’exécution diffèrent des dépendances lorsque Ngen.exe est exécutée, la liaison à une image native n’est pas autorisée.
*** 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 d’image native qui s’est produit, car les paramètres de sécurité sur l’ordinateur lorsque l’application a été exécutée étaient différents des paramètres de sécurité au moment de la création de l’image native.
*** 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.
Boîte de dialogue Paramètres du journal
Vous pouvez utiliser la boîte de dialogue Paramètres du journal pour effectuer les actions suivantes.
Pour désactiver la journalisation
- Sélectionnez le bouton d’option Journal désactivé . Notez que cette option est sélectionnée par défaut.
Pour journaliser les liaisons d’assembly dans les exceptions
Sélectionnez le bouton d’option De texte De journal dans l’exception . Seules les informations du journal de fusion les moins détaillées sont consignées dans le texte d’exception. Pour afficher des informations complètes, utilisez l’un des autres paramètres.
Consultez la note importante concernant les assemblys chargés en tant que domaine neutre.
Pour journaliser les échecs de liaison d’assembly
Sélectionnez le bouton d’option Lier le journal aux options de disque .
Consultez la note importante concernant les assemblys chargés en tant que domaine neutre.
Pour journaliser toutes les liaisons d’assembly
Sélectionnez le bouton Enregistrer toutes les liaisons à l’option disque .
Consultez la note importante concernant les assemblys chargés en tant que domaine neutre.
Important
Lorsqu’un assembly est chargé en tant que domaine neutre, par exemple en définissant la propriété sur LoaderOptimization.MultiDomain ou LoaderOptimization.MultiDomainHosten activant la LoaderOptimization journalisation peut fuiter de la mémoire dans certains cas. Cela peut se produire si une entrée de journal est effectuée lorsqu’un module neutre du domaine est chargé dans un domaine d’application, puis que le domaine d’application est déchargé. L’entrée du journal peut ne pas être libérée tant que le processus n’est pas terminé. Certains débogueurs activent automatiquement la journalisation.
Pour activer un chemin d’accès de journal personnalisé
Sélectionnez le bouton Activer le chemin d’accès du journal personnalisé .
Entrez le chemin d’accès dans la zone de texte Chemin d’accès du journal personnalisé .
Note
La visionneuse du journal de liaison d’assembly (Fuslogvw.exe) utilise le cache de fichiers Internet pour stocker son journal de liaison. En raison d’une altération occasionnelle dans le cache, la visionneuse du journal de liaison d’assembly (Fuslogvw.exe) peut parfois cesser d’afficher de nouveaux journaux de liaison dans la fenêtre d’affichage. En raison de cette altération, l’infrastructure de liaison .NET (fusion) ne peut pas écrire ou lire à partir du journal de liaison. (Ce problème n’est pas rencontré si vous utilisez un chemin d’accès de journal personnalisé.) Pour corriger l’altération et autoriser la fusion à afficher à nouveau les journaux de liaison, effacez le cache de fichiers Internet en supprimant les fichiers Internet temporaires de la section Historique de navigation sous propriétés Internet.
Si votre application non managée héberge le Common Language Runtime en implémentant les IHostAssemblyManager entrées de journal et IHostAssemblyStore les interfaces, les entrées de journal ne peuvent pas être stockées dans le cache wininet. Pour afficher les entrées de journal pour les hôtes personnalisés qui implémentent ces interfaces, vous devez spécifier un autre chemin d’accès au journal.
Pour activer la journalisation des applications s’exécutant dans le conteneur d’applications Windows
Activez un chemin d’accès de journal personnalisé, comme décrit dans la procédure précédente. Par défaut, les applications qui s’exécutent dans le conteneur d’applications Windows ont un accès limité au disque dur. Le répertoire que vous spécifiez dispose d’un accès en lecture/écriture pour toutes les applications du conteneur d’application.
Cochez la case Activer la journalisation immersive .
Note
Cette zone est activée uniquement sur Windows 8 ou version ultérieure.