Registry 如何启用程序集绑定日志记录?
我得到,“无法加载文件或程序集'Bla'或其依赖项之一。试图加载格式不正确的程序。” 部分详细信息显示: 警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 注意:程序集绑定失败日志记录会带来一些性能损失。 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]。” 因此,考虑到这可能会让我了解为什么会出现上面的错误(也许下一个YSOD会包含关于它失败的确切原因的更明确的信息),我导航到注册表中的那个位置,但我看不到这样的键。它所拥有的是:Registry 如何启用程序集绑定日志记录?,registry,regedit,assemblybinding,ysod,Registry,Regedit,Assemblybinding,Ysod,我得到,“无法加载文件或程序集'Bla'或其依赖项之一。试图加载格式不正确的程序。” 部分详细信息显示: 警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 注意:程序集绑定失败日志记录会带来一些性能损失。 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]。” 因此,考虑到这可能会让我了解为什么会出现
\Fusion
(Default) value not set
\GACChangeNotification
\NativeImagesIndex
\PublisherPolicy
我遗漏了什么?开始调查任何失败绑定的好地方是使用“fuslogvw.exe”实用程序。这可能会为您提供与绑定失败相关的所需信息,这样您就不必为了打开绑定日志而乱动任何注册表值 该实用程序应位于Microsoft SDK文件夹中,该文件夹类似于以下内容,具体取决于您的操作系统: “C:\Program Files(x86)\Microsoft SDK\Windows\v{SDK version}A\Bin\FUSLOGVW.exe”
FUSLOGVW
将出现一个新屏幕
我查找的第一件事是应用程序查找程序集的路径。您还应确保所讨论程序集的版本号符合您的预期。如果有时运行不同版本的应用程序,请确保从应用程序bin目录中删除“Bla”,如果运行的版本不需要它 当我遇到同样的问题时,我通过删除该项目中现有的
key.snk
并添加一个新密钥来修复它。只需在Fusion密钥下创建一个新的DWORD(32)。将DWORD命名为EnableLog,并将其设置为值1。然后重新启动IIS,刷新给出错误的页面,程序集绑定日志将显示在错误消息中。根据pierce。jason在上面的回答,我很幸运:
只需在Fusion键下创建一个新的DWORD(32)。将DWORD命名为LogFailures,并将其设置为值1。然后重新启动IIS,刷新给出错误的页面,程序集绑定日志将显示在错误消息中
您可以转到
现有应用程序池->右键单击高级设置->启用32位应用程序----设置为真对于我来说,“Bla”文件是System.Net.http dll,它在我的BIN文件夹中丢失。我刚刚添加了它,效果很好。没有更改任何注册表项或任何类似的内容。此错误是我在windows应用程序中从客户端调用服务器dll时出现的。重新启动系统后,它工作正常如果设置为只读,请尝试以管理员身份运行该工具。很好的回答,但它不会为我显示任何绑定失败,即使我启用了所有绑定的日志记录…如果您正在构建ASP.NET MVC应用程序(或者可能是任何其他涉及IIS的应用程序)需要重新启动IIS才能获取绑定日志。如果在日志查看器中看不到任何内容,则可以转到设置并选择“启用所有磁盘绑定”。然后创建一个可以授予所有权限的文件夹。在刚才选择的“日志设置”窗口中,选中“启用自定义日志路径”和刚才创建的文件夹的路径。重新启动IIS并浏览到您的站点。您可以看到logging now.FYI,我必须通过删除Internet临时文件来清除Internet Explorer缓存。我甚至不使用Internet Explorer。请参阅本页底部的说明如何创建DWORD(32)?使用regedit导航到Fusion键。在右侧窗格的空白处单击鼠标右键。展开“New”,您将看到“DWORD(32位)值”。这不是op所要求的。。。此配置将强制web应用程序以x32运行,即使在x64系统上也是如此。此应用程序中运行的编译为x64的DLL可能是根本问题,但此设置的影响远不止解决此问题。的可能重复