907 votes

Comment activer la journalisation des échecs de liaison d'assemblages (Fusion) dans .NET ?

Comment activer la journalisation de l'échec de la liaison d'assemblage (Fusion) dans .NET ?

50 votes

Si quelqu'un veut utiliser l'enregistreur de fusion (fuslogvw.exe), lisez cet article : msdn.microsoft.com/fr/us/library/e74a18c4(v=VS.100).aspx Il vous indique où le télécharger et d'autres informations.

13 votes

@Will - merci de partager ! En prime, assurez-vous d'exécuter fuslogvw.exe en tant qu'administrateur pour éviter tout problème de droits.

3 votes

Dans le même ordre d'idées, veillez à désactiver l'enregistreur de fusion (fuslogvw.exe) lorsque vous avez terminé. Mon " C:\Windows\...\Temporary Le dossier "Internet Files" contenait 4 millions de journaux. La taille totale de tous les fichiers était de 6 Go, mais comme ils étaient beaucoup plus petits que la taille du cluster, l'espace disque réellement utilisé était de 16 Go.

967voto

Gary Kindel Points 5057

Ajoutez les valeurs suivantes à

HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Microsoft\\Fusion
Add:
DWORD ForceLog set value to 1
DWORD LogFailures set value to 1
DWORD LogResourceBinds set value to 1
String LogPath set value to folder for logs (e.g. C:\\FusionLog\\)

Assurez-vous que vous inclure la barre oblique inversée après le nom du dossier et que le Le dossier existe .

Vous devez redémarrer le programme que vous exécutez pour le forcer à lire ces paramètres de registre.

27 votes

Les solutions de Gary ont fonctionné pour moi, même si j'ai également dû réinitialiser IIS. Notez que j'ai configuré ceci dans un environnement propre où je ne voulais pas installer de SDK et autres.

0 votes

J'ai ajouté ces entrées, mais mon c# express (2010) me dit toujours "Assembly binding logging is turned OFF". Comment faire pour que cela fonctionne ?

5 votes

Certains ont signalé que le changement de registre ne se fait pas tout de suite. Avez-vous essayé d'activer la connexion de Fusion puis de redémarrer ?

301voto

Mike Goatly Points 1925

J'utilise habituellement le Fusion Log Viewer ( Fuslogvw.exe à partir d'une invite de commande Visual Studio ou de Fusion Log Viewer à partir du menu de démarrage) - ma configuration standard est la suivante :

  • Ouvrir Fusion Log Viewer
  • Cliquez sur paramètres
  • Vérifiez le Activer le chemin d'accès au journal personnalisé case à cocher
  • Saisissez l'emplacement où vous souhaitez que les journaux soient écrits, par exemple, c:\FusionLogs ( Important : assurez-vous que vous avez effectivement créé ce dossier dans le système de fichiers).
  • Assurez-vous que le bon niveau de journalisation est activé (je sélectionne parfois simplement Enregistrer tous les liens sur le disque juste pour s'assurer que les choses fonctionnent correctement)
  • Cliquez sur OK
  • Définissez l'option d'emplacement du journal sur Personnalisé

N'oubliez pas de désactiver la déconnexion une fois que vous avez terminé !

(Je viens de poster ceci sur une question similaire - je pense que c'est pertinent ici aussi).

4 votes

Notez que dans les cas où vous hébergez vous-même le runtime à partir d'une application native, vous devrez, pour une raison ou pour une autre, utiliser un chemin de journalisation personnalisé, sinon vous n'obtiendrez rien.

0 votes

Au moins dans ma situation, je n'ai pas eu à définir les chemins d'accès aux journaux personnalisés. Tout ce que j'avais à faire était d'activer la journalisation, par exemple, "Log all binds to disk" dans la boîte de dialogue des paramètres.

51 votes

Exécuter en tant qu'administrateur était nécessaire dans mon cas, sinon toutes les options étaient désactivées.

196voto

Samuel Jack Points 14556

Si le SDK Windows est installé sur votre ordinateur, vous trouverez le "Fusion Log Viewer" sous Microsoft SDK. \Tools (tapez simplement "Fusion" dans le menu de démarrage sous Vista ou Windows 7/8). Lancez-le, cliquez sur le bouton "Paramètres" et sélectionnez "Enregistrer les échecs de liaison" ou "Enregistrer toutes les liaisons".

Si ces boutons sont désactivés, retournez dans le menu de démarrage, faites un clic droit sur le Log Viewer et sélectionnez "Exécuter en tant qu'administrateur".

6 votes

Ces boutons sont désactivés pour moi - pourquoi ?

14 votes

@Tim, je n'ai jamais vu cela auparavant - cela pourrait-il avoir un rapport avec les privilèges d'administrateur ? C'est HKEY_LOCAL_MACHINE qui est modifié après tout.

2 votes

"Settings, Log bind failures" a suffi pour trouver mon problème.

93voto

user32736 Points 1962

Définissez la valeur de registre suivante :

[HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Fusion !EnableLog] (DWORD) à 1

Pour désactiver, mettez à 0 ou supprimez la valeur.

Sauvegarder le texte suivant dans un fichier, par exemple FusionEnableLog.reg, dans l'éditeur de registre de Windows. format de l'éditeur de registre Windows :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"EnableLog"=dword:00000001

Exécutez ensuite le fichier à partir de l'explorateur Windows et ignorez l'avertissement concernant les dommages possibles.

4 votes

Non pas que l'entrée n'existera probablement pas - vous devrez la créer. En tout cas, c'est ce que j'ai fait lorsque j'étais sur le point de répondre à cette question juste avant le crash de ce matin :)

3 votes

Que signifie le ! Clé ou valeur ? Qu'en est-il des systèmes 64 bits ?

2 votes

Cela ne fonctionne pas. La valeur est ForceLog et non EnableLog, et une étape supplémentaire est nécessaire ici (voir : thepursuitofalife.com/ )

21voto

Adam Tuliper - MSFT Points 22478

Le site Changement de la visionneuse des paramètres du journal de Fusion script est sans conteste le meilleur moyen d'y parvenir.

Sur ASP.NET il a été parfois difficile de faire fonctionner ce système correctement. Ce script fonctionne très bien et a été listé sur Liste des outils électriques de Scott Hanselman également. Je l'utilise personnellement depuis des années et il ne m'a jamais laissé tomber.

0 votes

Ps ASSUREZ-VOUS de le désactiver après l'avoir exécuté ou ce dossier pourrait devenir assez gros

0 votes

C'est la raison pour laquelle j'utilise ETW, pour n'enregistrer les données que si j'en ai vraiment besoin, et non pas tout le temps dans un gros fichier journal moche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X