我如何在.NET中启用程序集绑定失败日志记录(融合)?


当前回答

在我的例子中,帮助键入小写的磁盘名称

错误- C:\someFolder

正确- c:\someFolder

其他回答

设置以下注册表值:

(微软HKEY_LOCAL_MACHINE \ SOFTWARE \ \融合!EnableLog] (DWORD)到1

若要禁用,请设置为0或删除该值。

[edit]:将以下文本保存为文件,如“FusionEnableLog”。注册, Windows注册表编辑器格式:

Windows Registry Editor Version 5.00

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

然后从windows资源管理器运行该文件,并忽略有关可能损坏的警告。

将下列值添加到

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
DWORD EnableLog set value to 1
String LogPath set value to folder for logs (e.g. C:\FusionLog\)

确保在文件夹名称后包含反斜杠,并且文件夹存在。

您需要重新启动正在运行的程序,以强制它读取这些注册表设置。

顺便说一下,不要忘记在不需要的时候关闭融合日志记录。

如果你的机器上安装了Windows SDK,你会在Microsoft SDK\Tools下找到“Fusion日志查看器”(只需在Vista或Windows 7/8的开始菜单中键入“Fusion”)。启动它,单击设置按钮,并选择“日志绑定失败”或“日志所有绑定”。

如果这些按钮被禁用,返回开始菜单,右键单击日志查看器,并选择“以管理员身份运行”。

我通常使用Fusion日志查看器(从Visual Studio命令提示符或从开始菜单中的Fusion日志查看器中的Fuslogvw.exe) -我的标准设置是:

以管理员身份打开Fusion Log Viewer 点击设置 选中“启用自定义日志路径”复选框 输入要写入日志的位置,例如c:\FusionLogs(注意:请确保您已经在文件系统中创建了此文件夹)。 确保打开了正确的日志级别(我有时只是选择“日志全部绑定到磁盘”,只是为了确保事情正常工作) 单击OK 将日志位置选项设置为自定义

一旦你完成了,记得关闭登录!

(我刚刚就一个类似的问题发表了这篇文章——我认为这也与此相关。)

融合日志设置查看器更改脚本是做到这一点的最好方法。

在ASP。NET中,有时要使它正确工作是很棘手的。这个脚本工作得很好,也被列入了Scott Hanselman的Power Tool列表。我个人已经使用它很多年了,它从来没有让我失望过。