在尝试追踪仅在生产环境中发生的性能问题时,我们在应用程序中启用了跟踪,以便查看方法调用和页面加载时间。
这运作良好,并且有很多信息可以帮助追踪问题。但是,查看此信息的唯一方法是浏览到 Trace.axd,然后单独查看每个请求。
通过这种方式也只能跟踪前 X 个请求,并且 X 的最大限制为 10,000。
有没有办法将此跟踪信息定向到文件或数据库?我相信这可以使用来完成System.Diagnostics
然而,我的运气并不好。
我已经使用启用了跟踪
<trace enabled="true" writeToDiagnosticsTrace="true" />
我尝试过使用XmlWriterTraceListener
using
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="XmlWriterTraceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\trace.xml"
/>
</listeners>
</trace>
</system.diagnostics>
这会生成一个 xml 文件,其中包含跟踪项(例如“开始加载”、“结束加载”等)的时间戳和数据。
但是,它似乎只记录单个请求,而不记录所有请求。此外,虽然加载时间很有用,但理想情况下我希望获得 Trace.axd 中可以看到的所有信息,例如请求数据、发布数据、会话数据等。
在不进行任何重大代码更改的情况下这是否可能?理想情况下,我想仅使用 web.config 更改来启用此功能。
或者,我研究了其他应用程序,例如 RedGate 和 Equatec 的分析工具,但是,我想首先用尽非侵入式跟踪选项。
该应用程序是用 ASP.Net 3.5 和 C# 编写的。