出于各种常见原因,我想对我的ASP.NET应用程序使用跟踪.特别是因为我发现了使用
Service Trace Viewer工具的可能性,它允许您以强大的方式检查您的痕迹.
因为我之前从未使用过这种痕迹,所以我开始研究它.经过一段时间的谷歌,SO和MSDN,我终于明白了事情是如何运作的.但我也发现了一个非常不受欢迎的事情.
在ASP.NET应用程序中使用跟踪时,通过Web请求将跟踪消息组合在一起非常有意义.特别是因为我想使用它的原因之一是研究性能问题.上述工具也通过使用< Corrleation>来支持这一点.生成的XML文件中的标记.而这又来自System.Diagnostics.Trace.CorrelationManager.它还允许其他很好的功能,如Activity启动/停止,它提供了更好的跟踪消息分组.很酷,对吗?
我也是如此,直到我开始检查CorrelationManager实际居住的位置.毕竟 – 它是一个静态属性.在玩了一些反射器后,我发现了一些可怕的东西 – 它存储在CallContext中! we shouldn’t be using in ASP.NET是哪种东西吧?
所以……我在这里错过了一些东西吗?在ASP.NET中跟踪真的存在根本缺陷吗?
补充:嗯,我有点在自己重写这些东西的边缘.我仍然想使用整洁的工具来探索痕迹.我不应该这样做的原因?也许有更好的东西呢?如果我很快得到答案,那将是非常好的.