程序集绑定日志查看器 (Fuslogvw.exe)

程序集绑定日志查看器 (Fuslogvw.exe)

程序集绑定日志查看器显示有关失败的程序集绑定的详细信息。这些信息有助于您诊断 .NET Framework 无法在运行时找到程序集的原因。这些失败通常是由于程序集部署到错误位置或者版本号或区域性不匹配造成的。如果公共语言运行库未能找到程序集,则通常会在您的应用程序中表现为 TypeLoadException

使用程序集绑定日志查看器

使用程序集绑定日志查看器可以执行以下操作:

您可以设置注册表项,以便在查看器中显示附加信息:

查看程序集绑定日志的内容

  • 从命令行运行 Fuslogvw.exe。

以下屏幕快照显示了程序集绑定日志查看器。

程序集绑定日志内容

查看器将为每次失败的程序集绑定显示一项。对于每次失败,查看器会描述启动该绑定的应用程序,绑定所针对的程序集(包括名称、版本、区域性和公钥),以及失败的日期和时间。

更改日志位置视图

  • 选择“Default”选项按钮可查看除 ASP.NET 之外的所有应用程序类型的绑定失败。默认情况下,日志项存储在磁盘上 wininet 缓存的各用户目录中。
  • 选择“ASP.NET”选项按钮可以查看 ASP.NET 应用程序的绑定失败。基于用户存储日志项对于 ASP.NET 而言是不适合的,因为在 Web 服务器方案中通常所有用户都以相同的用户 ID 运行。因此,ASP.NET 在各应用程序缓存目录中记录其绑定失败。
  • 选择“Custom”选项按钮可以在您指定的自定义目录中查看绑定失败信息。您必须指定希望运行库存储这些日志的自定义位置,方法是将注册表项 HKLM/Software/Microsoft/Fusion/LogPath 设置为有效的目录名称。此目录应是干净的,并且仅包含运行库所生成的文件。如果该目录中包含了一个会生成可被记录下来的失败的可执行文件,则该失败将不会被记录下来,因为此工具试图创建一个与该可执行文件同名的目录。此外,试图从日志位置运行可执行文件时也会失败。
    注意   默认的绑定位置优于自定义绑定位置。运行库将默认绑定位置存储在 wininet 缓存中,因而可以自动清除该位置。如果您指定了自定义绑定位置,则需要自行将其清除。

查看有关特定失败的详细信息

  • 在查看器中选择所需项的应用程序名称。
  • 单击“View Log”按钮。或者,可以双击所选项。

    该工具将显示以下有关所选绑定失败的详细信息:

    • 绑定失败的具体原因,例如“未找到文件”或“版本不匹配”。
    • 与启动该绑定的应用程序有关的信息,包括其名称、应用程序的根目录 (AppBase) 以及专用搜索路径的说明(如果具有此类路径)。
    • 该工具正查找的程序集的标识。
    • 已经应用的任何应用程序、发行者或管理员版本策略的说明。
    • 是否已在全局程序集缓存中找到了程序集。
    • 所有正探测的 URL 的列表。

以下日志项的示例展示与失败的程序集绑定有关的详细信息。

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

从日志中删除单一项

  • 在查看器中选择一项。
  • 单击“Delete Entry”按钮。

从日志中删除所有项

  • 单击“Delete All”按钮。

刷新用户界面

  • 单击“Refresh”按钮。查看器在其运行时不自动检测新的日志项。您必须使用“Refresh”按钮来显示它们。

退出浏览器

  • 单击“Exit”按钮。
其他配置设置

在查看器中记录所有绑定

  • HKLM/Software/Microsoft/Fusion/ForceLog 注册表值设置为 1(该值是 DWORD)。

默认情况下,Fuslogvw.exe 只记录失败了的定位程序集的尝试。您可能会遇到需要查看所有成功的程序集绑定的情况。例如,您可能要验证程序集正从您的应用程序目录加载,而不是从全局程序集缓存加载。设置此注册表项以强制 Fuslogvw.exe 记录所有程序集绑定。

记录对附属程序集的绑定失败

  • HKLM/Software/Microsoft/Fusion/LogResourceBinds 注册表值设置为 1(该值为 DWORD)。

默认情况下,Fuslogvw.exe 不记录失败了的定位附属程序集的尝试。设置此注册表项将启用该功能。

请参见

.NET Framework 工具 | 全局程序集缓存 | 运行库如何定位程序集 | TypeLoadException 类

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fuslogvw.exe是一个程序绑定日志记录器,可以帮助您跟踪程序的加载过程。要使用Fuslogvw.exe,请按照以下步骤操作: 1. 打开Visual Studio命令提示符。可以在开始菜单中搜索“Visual Studio命令提示符”,然后右键单击它并选择“以管理员身份运行”。 2. 在命令提示符中,输入以下命令并按Enter键: ``` fuslogvw.exe ``` Fuslogvw.exe将会打开一个窗口,您可以在其中设置程序绑定日志记录选项。 3. 在Fuslogvw.exe窗口中,选择“设置”选项卡,然后选择“启用程序绑定日志记录”选项。您还可以选择程序绑定日志文件的位置和格式。 4. 在Fuslogvw.exe窗口中,选择“过滤”选项卡,并设置过滤器,以便只记录您感兴趣的程序绑定信息。例如,您可以设置过滤器以仅记录失败的程序绑定。 5. 在Fuslogvw.exe窗口中,选择“查看日志”选项卡,然后单击“清除日志”按钮,以删除以前记录的所有程序绑定信息。 6. 在Visual Studio中运行您的应用程序,并复制出现程序绑定错误的详细信息。 7. 回到Fuslogvw.exe窗口,单击“刷”按钮,以查看最程序绑定信息。 8. 在Fuslogvw.exe窗口中查找与您复制的错误信息匹配的程序绑定信息。Fuslogvw.exe将会显示程序绑定的详细信息,包括程序的名称、版本、位置等。 希望这些步骤能够帮助您使用Fuslogvw.exe来跟踪程序绑定信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值