我如何在.NET中启用程序集绑定失败日志记录(融合)?
当前回答
如果你已经启用了日志记录,在Windows 7 64位上仍然会得到这个错误,在iis7.5中尝试一下:
创建一个新的应用程序池 进入该应用池的高级设置 将启用32位应用程序设置为True 让您的web应用程序使用这个新池
其他回答
对于那些有点懒的人,我建议当你想要启用它时,把它作为一个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
如果你的机器上安装了Windows SDK,你会在Microsoft SDK\Tools下找到“Fusion日志查看器”(只需在Vista或Windows 7/8的开始菜单中键入“Fusion”)。启动它,单击设置按钮,并选择“日志绑定失败”或“日志所有绑定”。
如果这些按钮被禁用,返回开始菜单,右键单击日志查看器,并选择“以管理员身份运行”。
我通常使用Fusion日志查看器(从Visual Studio命令提示符或从开始菜单中的Fusion日志查看器中的Fuslogvw.exe) -我的标准设置是:
以管理员身份打开Fusion Log Viewer 点击设置 选中“启用自定义日志路径”复选框 输入要写入日志的位置,例如c:\FusionLogs(注意:请确保您已经在文件系统中创建了此文件夹)。 确保打开了正确的日志级别(我有时只是选择“日志全部绑定到磁盘”,只是为了确保事情正常工作) 单击OK 将日志位置选项设置为自定义
一旦你完成了,记得关闭登录!
(我刚刚就一个类似的问题发表了这篇文章——我认为这也与此相关。)
将下列值添加到
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\)
确保在文件夹名称后包含反斜杠,并且文件夹存在。
您需要重新启动正在运行的程序,以强制它读取这些注册表设置。
顺便说一下,不要忘记在不需要的时候关闭融合日志记录。
融合日志设置查看器更改脚本是做到这一点的最好方法。
在ASP。NET中,有时要使它正确工作是很棘手的。这个脚本工作得很好,也被列入了Scott Hanselman的Power Tool列表。我个人已经使用它很多年了,它从来没有让我失望过。
推荐文章
- 在c#中从URI字符串获取文件名
- 检查SqlDataReader对象中的列名
- 如何将类标记为已弃用?
- c# 8支持。net框架吗?
- Linq-to-Entities Join vs GroupJoin
- 为什么字符串类型的默认值是null而不是空字符串?
- 在list中获取不同值的列表
- 组合框:向项目添加文本和值(无绑定源)
- AutoMapper:“忽略剩下的?”
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- 从System.Drawing.Bitmap中加载WPF BitmapImage
- 如何找出一个文件存在于c# / .NET?
- 为什么更快地检查字典是否包含键,而不是捕捉异常,以防它不?
- [DataContract]的命名空间
- string. isnullorempty (string) vs. string. isnullowhitespace (string)