装配绑定日志查看器(fuslogvw)未记录任何绑定。

53

装配绑定日志查看器(fuslogvw)没有记录我机器上安装的任何框架版本的绑定。

我尝试使用自定义日志位置、默认日志位置、默认类别和本地映像类别。

几个月前,装配绑定日志查看器还可以正常工作。我使用的是64位机器,并运行以下命令: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\FUSLOGVW.exe

6个回答

53

1
好的,那么这里显而易见的问题是,如果我卸载了Internet Explorer,那我就不能使用这个了? - marknuzz
1
@Nuzzolilo 应该有一种方法可以减少系统中的临时互联网文件数量。也许可以尝试这个链接?http://windows.microsoft.com/zh-cn/windows-vista/delete-temporary-internet-files 我不再经常使用Windows了。 - David Silva Smith
1
谢谢,尽管我已经卸载了它,但我仍然能够找到选项。 - marknuzz
5
请注意,MSDN指出,只有在未使用自定义日志位置时才会使用IE缓存。 - user3638471

40

在经历了很多挫折后,我发现默认情况下,fuslogvw不会记录程序集绑定失败!

你需要点击“设置”,然后选择“将绑定失败记录到磁盘”,否则你在窗口中看不到任何内容。

更改设置时,您可能需要以管理员身份运行fuslogw.exe


2
我需要浏览到正确的目录,因为在命令提示符中它使用了目录v10.0A中的fuslogvw。我需要的是在目录v7.0A中的那个。 - redcurry
6
需要点击“刷新”才能看到新内容。 - altumano
1
@redcurry,我大约要进行20次谷歌搜索才最终找到了你有关v7.0A的答复,这是我的问题的答案,即如何使其在通过本地IIS运行的MVC网站上运行。非常感谢! - James P. Wright
发布了一个答案,指向一个叫做[Fusion++]的工具(https://github.com/awaescher/Fusion)。我只是想在这里提一下,让你看到它。 - Waescher
fuslogvw的开发者对于良好用户体验知之甚少! - Tony_Henrich

26
如果您正在构建一个 ASP.NET MVC 应用程序(或可能涉及 IIS 的任何其他应用程序),则需要重新启动 IIS 才能开始获取绑定日志。

类似于Cassini(Visual Studio临时Web服务器),需要停止它,一旦重新启动项目,它就会重新启动。 - Dave

14
装配绑定日志查看器(FUSLOGVW.exe)存在一些问题。例如,默认情况下它不会在运行时绑定错误,或者您必须确保不要向自定义日志路径添加额外的反斜杠。您不能使用UI来查找错误,只能扫描文件系统以读取日志。该应用程序窗口甚至无法调整大小。
有太多的问题,我决定编写一个名为Fusion++的替代程序集绑定日志查看器,并将其放在GitHub上。它在内部使用相同的机制,但为您解析日志。您根本不需要关心任何设置,甚至不需要日志路径。
您可以从这里获取最新版本,或通过chocolatey(choco install fusionplusplus)安装。

Fusion++


1
谢谢!哇,阅读这篇文章和答案真是让人头疼的应用程序!不可思议,在IE中做一些事情会影响完全无关的开发工具!感谢您让事情变得更好!附言:我喜欢暗模式!谢谢! - David Silva Smith
谢谢David。很高兴你喜欢它。 - Waescher
1
@Waescher 这个应用程序一直在哪里?谢谢! :-) - bart
1
哦,我的天啊。这将会是一个非常省时的工具。我立刻与整个团队分享了这个消息。话虽如此,我的问题是我需要重置IIS。但是... - Mike Loux
1
出色的工作!该工具最初未捕获任何内容,但在进行iisreset后开始捕获。 (而实际罪魁祸首是存储在“Temporary ASP.NET Files”文件夹中的旧版本DDL缓存。) - track0

8

根据此篇文章,它使用IE缓存进行日志记录。因此,最好避免清除浏览历史纪录,而是点击“设置”->“启用自定义日志路径”,选择一个不与IE共享的目录。


1
这对我没有用,即使使用自定义折叠集,我仍然不得不清除IE临时文件/历史记录。 - stonedauwg

7

我使用这篇博客文章中的脚本来启用fuslogvw.exe的日志记录,而不需要使用exe本身。

可以在这里下载该脚本。

此脚本“启用”和“禁用”Fusion Log Viewer工具的自定义设置。

启用设置将:

  • 创建一个日志文件夹(默认为C:\ fusionlogs)
  • 添加HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Fusion \ LogPath,并将其设置为日志文件夹
  • 将HKEY_LOCAL_MACHINE \ SOFTWAR \ Microsoft \ Fusion \ LogFailures设置为1
  • 可选地将HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Fusion \ ForceLog设置为1
  • 可选地将HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Fusion \ LogResourceBinds设置为1

禁用设置将会:

  • 删除日志文件夹及其内容
  • 删除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\LogPath
  • 将 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\LogFailures 设置为 0
  • 将 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\ForceLog 设置为 0
  • 将 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\LogResourceBinds 设置为 0

这个答案是最正确的。在标记的答案中删除IE缓存,并不能保证Fusion会显示已登录的程序集。 - Eriawan Kusumawardhono
脚本不再可用。 - Markus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接