如何启用程序集绑定日志记录?

B. *_*non 49 registry regedit assemblybinding ysod

我得到了,"无法加载文件或程序集'Bla'或其中一个依赖项.试图加载一个格式不正确的程序."

部分详细信息说:

"WRN:程序集绑定日志记录已关闭.要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败会导致一些性能损失要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]."

因此,考虑到这一点可能会让我深入了解为什么我收到上述错误(也许下一个YSOD会包含更明确的信息,说明它失败的原因),我导航到注册表中的那个位置,但是没有这样的键我能看到.它的作用是:

\Fusion 
    (Default)   value not set
    \GACChangeNotification
    \NativeImagesIndex
    \PublisherPolicy
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Sca*_*ell 57

开始调查任何失败绑定的好地方是使用"fuslogvw.exe"实用程序.这可能会为您提供与绑定失败相关的所需信息,这样您就不必乱用任何注册表值来打开绑定登录.

Fuslogvw MSDN页面

该实用程序应位于您的Microsoft SDKs文件夹中,具体取决于您的操作系统: "C:\ Program Files(x86)\ Microsoft SDKs\Windows\v {SDK version} A\Bin\FUSLOGVW.exe "

1)运行此实用程序(它具有GUI)并将设置设置为"将绑定故障记录到磁盘".

2)单击"全部删除"以清除以前任何绑定失败的列表

3)在您的应用程序中重现绑定失败

4)在该实用程序中,单击"刷新".然后,您应该看到列表中记录的绑定失败.

5)您可以通过在列表中选择绑定失败并单击"查看日志"来查看有关绑定失败的信息

我要找的第一件事是应用程序在寻找程序集的路径.您还应该确保有问题的程序集的版本号是您所期望的.

  • 如果设置是只读的,请尝试以管理员身份运行该工具 (30认同)
  • 很好的答案,但即使我启用了所有绑定的记录后,它也没有显示任何绑定失败... (8认同)
  • 如果您正在构建ASP.NET MVC应用程序(或可能是涉及IIS的任何其他应用程序),则需要重新启动IIS以获取绑定日志. (7认同)
  • 如果您在日志查看器中看不到任何内容,则可以转到设置并选择"启用所有绑定到磁盘".然后创建一个可以授予所有权限的文件夹.在刚刚选择的"日志设置"窗口中,选中"启用自定义日志路径"以及刚刚创建的文件夹的路径.重新启动IIS并浏览到您的站点.您现在可以看到日志记录. (4认同)
  • 仅供参考,我必须通过删除临时互联网文件来清除我的Internet Explorer缓存.我甚至不使用Internet Explorer.请参阅本页底部的说明https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx (2认同)

pie*_*son 21

只需在Fusion键下创建一个新的DWORD(32)即可.将DWORD命名为EnableLog,并将其设置为值1.然后重新启动IIS,刷新页面给出错误,并在错误消息中显示程序集绑定日志.


小智 6

  1. 创建一个新的应用程序池

  2. 转到此应用程序池的"高级设置"

  3. 将Enable 32-Bit Application设置为True

  4. 指向您的Web应用程序以使用此新池

截图(IIS-ApplicationPool)

  • 这不是op要求的......这个配置只会迫使Web应用程序以x32运行,即使在x64系统上也是如此.在此应用程序中运行的编译为x64的DLL可能是根本问题,但此设置比解决问题具有更大的影响. (2认同)