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


#1楼

如果您已经启用了日志记录,并且在Windows 7 64位上仍然出现此错误,请在IIS 7.5中尝试:

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

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

  3. Enable 32-Bit Application设置True

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


#2楼

添加以下值

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\)

确保在文件夹名称后面包含反斜杠并且文件夹存在

您需要重新启动正在运行的程序以强制它读取这些注册表设置。

顺便说一句,不要忘记在不需要时关闭融合日志。


#3楼

只需要一点点信息就可以帮助别人; 如果您在某些目录中搜索继承/实现类/接口的类的所有程序集,那么请确保在遇到与您自己的程序集有关的错误时清除过时的程序集。

场景将是这样的:

  1. Assembly A加载某个文件夹中的所有程序集
  2. 此文件夹中的程序集B过时,但引用程序集C
  3. 程序集C存在,但命名空间,类名或其他一些细节可能在程序集B过时后已经过去的时间内发生了变化(在我的例子中,命名空间是通过重构过程更改的)

简而言之:A ---加载 - > B(陈旧)---参考---> C.

如果发生这种情况,唯一的标志是错误消息中的命名空间和类名。 仔细检查。 如果您在解决方案中的任何位置找不到它,您可能会尝试加载过时的程序集。


#4楼

设置以下注册表值:

[HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Fusion!EnableLog](DWORD)为1

要禁用,请设置为0或删除该值。

[编辑]:将以下文本保存到Windows注册表编辑器格式的文件中,例如FusionEnableLog.reg:

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"EnableLog"=dword:00000001

然后从Windows资源管理器运行该文件,并忽略有关可能的损坏的警告。


#5楼

如果您的计算机上安装了Windows SDK,您将在Microsoft SDK \\ Tools下找到“Fusion Log Viewer”(只需在Vista或Windows 7/8的开始菜单中键入“Fusion”)。 启动它,单击“设置”按钮,然后选择“日志绑定失败”或“记录所有绑定”。

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


#6楼

您还可以通过使用GUID 763FD754-7086-4DFE-95EB-C01A46FAF4CAFusionKeyword关键字(0x4)打开DotnetRuntime专用提供程序( Microsoft-Windows-DotNETRuntimePrivate ),而不是使用丑陋的日志文件,通过ETW / xperf激活Fusion日志上。

@echo off
echo Press a key when ready to start...
pause
echo .
echo ...Capturing...
echo ."C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -on PROC_THREAD+LOADER+PROFILE -stackwalk Profile -buffersize 1024 -MaxFile 2048 -FileMode Circular -f Kernel.etl
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start ClrSession -on Microsoft-Windows-DotNETRuntime:0x8118:0x5:'stack'+763FD754-7086-4DFE-95EB-C01A46FAF4CA:0x4:0x5 -f clr.etl -buffersize 1024echo Press a key when you want to stop...
pause
pause
echo .
echo ...Stopping...
echo ."C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start ClrRundownSession -on Microsoft-Windows-DotNETRuntime:0x8118:0x5:'stack'+Microsoft-Windows-DotNETRuntimeRundown:0x118:0x5:'stack' -f clr_DCend.etl -buffersize 1024 timeout /t 15set XPERF_CreateNGenPdbs=1"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -stop ClrSession ClrRundownSession
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -stop
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -merge kernel.etl clr.etl clr_DCend.etl Result.etl -compress
del kernel.etl
del clr.etl
del clr_DCend.etl

现在,当您在PerfView中打开ETL文件并查看“事件”表时,可以找到Fusion数据:


#7楼

我通常使用Fusion Log Viewer(来自Visual Studio命令提示符的 Fuslogvw.exe或开始菜单中的Fusion Log Viewer) - 我的标准设置是:

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

一旦完成,请记得关闭注销!

(我刚刚在类似的问题上发布了这个问题 - 我认为这也是相关的。)


#8楼

您可以以管理员身份运行此Powershell脚本以启用FL:

Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name ForceLog         -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogFailures      -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogResourceBinds -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogPath          -Value 'C:\FusionLog\' -Type String
mkdir C:\FusionLog -Force

这个禁用:

Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name ForceLog
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogFailures
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogResourceBinds
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogPath

#9楼

万一你想知道FusionLog.exe的位置 - 你知道你有它,但你找不到它? 我在过去的几年里一遍又一遍地寻找FUSLOVW。 移动到.NET 4.5后,FUSION LOG的版本号爆炸了。 她可以在磁盘上找到它,具体取决于您安装的软件:

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

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

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

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

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

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


#10楼

在我的情况下帮助键入小写的磁盘名称

错了 - C:\\ someFolder

正确 - c:\\ someFolder


#11楼

对于那些有点懒惰的人,我建议将其作为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

#12楼

我写了一个名为Fusion ++的汇编绑定日志查看器并将其放在GitHub上 。

您可以从这里或通过chocolatey( choco install fusionplusplus )获取最新版本。

我希望你和这里的一些游客可以节省一些值得一生的时间。


#13楼

Fusion日志设置查看器更改器脚本是最好的方法。

在ASP.NET中 ,有时让它正常工作一直很棘手。 这个脚本很好用,也列在Scott Hanselman的Power Tool列表中。 我个人已经使用了多年,它永远不会让我失望。

如何在.NET中启用程序集绑定失败日志记录(Fusion)相关推荐

  1. 如何在 Matlab 中启用 UTF-8 编码

    如何在 Matlab 中启用 UTF-8 编码 文章目录 定位问题 为什么应该使用 UTF-8 怎么让 Matlab 使用 UTF-8 一点吐槽 [注意]最后更新于 October 12, 2020, ...

  2. w10睡眠的计算机如何启动,如何在Windows10中启用或禁用允许混合睡眠

    如何在Windows10中启用或禁用允许混合睡眠 启用或禁用Windows10中允许混合睡眠的方法 在转到"允许混合睡眠"选项之前,我们将尝试了解什么是睡眠的基本术语?当用户希望离 ...

  3. 如何在Maya中修改已经绑定后的模型的法线

    前言:最近想把尼尔机械纪元的2B导入到UE中看看效果,可不知道是不是我解包的过程有问题,2B模型的裙子部分的发现有问题,而且裙子的模型还被拆分为了3个部分,直接软边是不管用的,而且已经绑定的模型就算修 ...

  4. java日志怎么实现_JAVA项目中怎么实现一个通用日志记录功能

    JAVA项目中怎么实现一个通用日志记录功能 发布时间:2020-11-21 17:04:50 来源:亿速云 阅读:53 作者:Leah 今天就跟大家聊聊有关JAVA项目中怎么实现一个通用日志记录功能, ...

  5. exception日志 php_PHP中错误与异常的日志记录用法分析

    本文分析了PHP中错误与异常的日志记录用法.分享给大家供大家参考,具体如下: 提到 Nginx + PHP 服务的错误日志,我们通常能想到的有 Nginx 的 access 日志.error 日志以及 ...

  6. java log日志函数_Java 中的 AWS Lambda 函数日志记录 - AWS Lambda

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. Ja ...

  7. web服务器中启用作业储存_如何在Kubernetes中启用无服务器计算

    web服务器中启用作业储存 在本系列的前两篇文章中,介绍了在开放源代码平台上使用无服务器平台的过程,我介绍了如何开始使用无服务器平台,以及如何使用流行的语言编写函数以及如何在Apache OpenWh ...

  8. 如何在 3Dmax 中启用 GPU 渲染?

    3D动画是当今娱乐行业广泛使用的一种艺术形式.3ds Max 是 3D 动画世界中使用最广泛的工具之一.该软件被广泛认为是可用于创建高质量 3D 动画的最佳工具之一,并被许多专业动画师和艺术家使用. ...

  9. 如何在 WebAPI 中启用 CORS

    浏览器安全策略上的安全限制可以有效的阻止 Ajax 向另外一个域server发起请求,这就是著名的 同源策略,那如何突破这种限制呢?可以使用 CORS (Cross-Origin Resource S ...

最新文章

  1. C++中的运算符重载
  2. 跟百万人一起在快手学自动驾驶,是种怎样的体验?
  3. 递归和非递归实现二叉排序树(BST)的查找操作
  4. ubuntu卸载nvidia驱动_解决Ubuntu18.04循环登录问题 - 卸载NVIDIA驱动 启用Nouveau(1)
  5. 利用Docker volume修改Nginx Docker镜像里index.html
  6. Django框架介绍 day01
  7. android kotlin log,Kotlin实现Log打印工具类
  8. 解决flash的虚框问题
  9. git更新上一次提交代码的备注信息
  10. 新手必须知道的典型自动脱螺纹注射模设计!!!
  11. 韩顺平 java 坦克大战_韩顺平坦克大战源代码 韩顺平老师视频里的坦克大战 - 下载 - 搜珍网...
  12. 【OpenGL开发】glut和freeglut下载及配置
  13. 带农历万年历C语言程序,c语言万年历程序代码
  14. “华为杯”山东理工大学第十一届ACM程序设计竞赛(正式赛)网络同步赛
  15. springboot学习(下)
  16. 深度学习|迁移学习|强化学习
  17. 校园综合服务平台-微信小程序
  18. 在U盘上安装debian linux
  19. (12)筋斗云案例(导航栏醒目显示跟随)
  20. 调焦距离S远近与景深之关系

热门文章

  1. jfreechart 多参数传递
  2. 好铁不打钉,好男不当网管-----论网管的自我修养 ...
  3. 快速配置Maven到OSChina中央库的教程
  4. [Python] 正确复制列表的方法
  5. 当他不再爱你的时候(男女生一定要看)
  6. [Xcode 实际操作]八、网络与多线程-(17)使用网址会话对象URLSession向远程服务器上传图片...
  7. cocos2dx 物理碰撞
  8. 用闭包方式实现点击a标签弹也索引值
  9. Mybatis与Spring整合示例
  10. leveldb 安装及使用