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


当前回答

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

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

其他回答

以防你想知道FusionLog.exe -的位置 你知道你有,但你找不到?在过去的几年里,我一遍又一遍地寻找FUSLOVW。在迁移到。net 4.5之后,FUSION LOG的版本数量激增。 她是可以在你的磁盘上找到它的地方,这取决于你安装的软件:

C:\Program Files (x86)\Microsoft sdk \Windows\v8.0A\bin\NETFX 4.0 Tools\x64

C:\Program Files (x86)\Microsoft sdk \Windows\v7.0A\Bin\x64

C:\Program Files (x86)\Microsoft sdk \Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64

C:\Program Files (x86)\Microsoft sdk \Windows\v8.0A\bin\NETFX 4.0工具

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools

C:\Program Files (x86)\Microsoft sdk \Windows\v7.0A\Bin

将下列值添加到

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”)。启动它,单击设置按钮,并选择“日志绑定失败”或“日志所有绑定”。

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

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

场景是这样的:

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

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

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

如果你已经启用了日志记录,在Windows 7 64位上仍然会得到这个错误,在iis7.5中尝试一下:

创建一个新的应用程序池 进入该应用池的高级设置 将启用32位应用程序设置为True 让您的web应用程序使用这个新池