TPL ETW事件具有额外的参数,导致调试器输出过多

Phi*_*duc 16 .net

更新:这是相关的前缀

我安装了早期版本的Prefix.我通过运行新安装程序进行了升级.在VS.NET 2015 Update 3中升级后,我在加载前缀模块时在调试输出窗口中看到这些消息.未加载前缀模块时,不会显示这些消息.

Event 10 was called with 5 argument(s) , but it is defined with 6 paramenter(s).
Event 7 was called with 5 argument(s) , but it is defined with 6 paramenter(s).
Run Code Online (Sandbox Code Playgroud)

这是Prefix或其他一些组件不匹配的问题吗?知道如何解决这个问题吗?我在调试时收到了数百条这样的消息.

2017年5月3日更新:我已经能够确定这些消息的来源.它们起源于.NET Framework内部类System.Threading.Tasks.TPLETWProvider 这两个事件是:

事件7:TaskScheduled事件方法有一个额外的第6个参数int appDomain未使用.

事件10:TaskWaitBegin,它还有一个额外的未使用的int appDomain参数.

当这些方法中的每一个最终调用EventSource.WriteToAllListeners时,将根据传入的数据元素的数量检查方法上的参数.当存在不匹配时,该消息将出现在Visual Studio的输出窗口中.

链接的源代码适用于.NET Framework 4.7.在我的本地版本中,我运行的是.NET 4.6.1(mscorlib,版本= 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089)

我真的很惊讶更多的人没有遇到这个问题.

小智 3

我在尝试找出原因时偶然发现了这一点。

尽管通过托盘图标禁用了Stackify Prefix ,但我仍然在“输出”窗口中收到这些程序输出消息。

解决方案是在 web.config 中注释掉以下行:

<add name="StackifyModule_Net40" type="StackifyHttpTracer.StackifyHttpModule,StackifyHttpTracer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=93c44ce23f2048dd" preCondition="managedHandler,runtimeVersionv4.0"/>
Run Code Online (Sandbox Code Playgroud)

环境:Visual Studio 2019 16.5.1,Stackify Prefix 3.0.28.0(来自 stackify.ini)