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


当前回答

这不是回答,而是警告:

如果你曾经启用这个日志记录,不要忘记禁用它,否则你以后会后悔的。

我确实忘记了,我最终得到了几个GB的小日志文件,HTM扩展在C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\INetCache\IE文件夹中-它显然记录了NT AUTHORITY\SYSTEM帐户下运行的应用程序的所有程序集绑定。

文件数量超过300万,Total Commander和Windows资源管理器都不能显示内容或文件夹大小而不挂起。

在禁用日志记录并重新启动之后,我从命令提示符中运行了删除。

删除三星970 Pro SSD上的所有文件花了超过15分钟,它一直显示100%的磁盘使用率-我的高端PC工作站被这个删除操作弄得瘫痪,直到它完成才有部分响应。

其他回答

对于那些有点懒的人,我建议当你想要启用它时,把它作为一个bat文件运行:

reg add "HKLM\Software\Microsoft\Fusion" /v EnableLog /t REG_DWORD /d 1 /f
reg add "HKLM\Software\Microsoft\Fusion" /v ForceLog /t REG_DWORD /d 1 /f
reg add "HKLM\Software\Microsoft\Fusion" /v LogFailures /t REG_DWORD /d 1 /f
reg add "HKLM\Software\Microsoft\Fusion" /v LogResourceBinds /t REG_DWORD /d 1 /f
reg add "HKLM\Software\Microsoft\Fusion" /v LogPath /t REG_SZ /d C:\FusionLog\

if not exist "C:\FusionLog\" mkdir C:\FusionLog

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

错误- C:\someFolder

正确- c:\someFolder

这不是回答,而是警告:

如果你曾经启用这个日志记录,不要忘记禁用它,否则你以后会后悔的。

我确实忘记了,我最终得到了几个GB的小日志文件,HTM扩展在C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\INetCache\IE文件夹中-它显然记录了NT AUTHORITY\SYSTEM帐户下运行的应用程序的所有程序集绑定。

文件数量超过300万,Total Commander和Windows资源管理器都不能显示内容或文件夹大小而不挂起。

在禁用日志记录并重新启动之后,我从命令提示符中运行了删除。

删除三星970 Pro SSD上的所有文件花了超过15分钟,它一直显示100%的磁盘使用率-我的高端PC工作站被这个删除操作弄得瘫痪,直到它完成才有部分响应。

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

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

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

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

只是一点点可能会帮助别人的信息;如果您在某个目录中搜索继承/实现类/接口的类的所有程序集,那么如果您得到与您自己的某个程序集相关的此错误,请确保您清除了过时的程序集。

场景是这样的:

程序集A装入某个文件夹中的所有程序集 此文件夹中的程序集B已过期,但引用程序集C 程序集C存在,但是名称空间、类名或其他一些细节可能在程序集B失效后发生了变化(在我的例子中,名称空间是通过重构过程改变的)。

简而言之:——加载> B(过期)——引用——> C

如果发生这种情况,唯一的迹象是错误消息中的名称空间和类名。仔细检查。如果您在解决方案中到处都找不到它,那么您可能正在尝试加载一个陈旧的程序集。