如何在ASP.NET MVC中生成完整的trace.axd?

时间:2009-07-17 20:46:20

标签: asp.net-mvc trace

在我的应用程序中,在ASP.NET MVC应用程序中启用ASP.NET Tracing后,时间计算统计信息被关闭了5000倍。

我有一个页面需要7到9秒才能加载。 Firebug和IIS日志文件中的“time-taken”字段都证实了这一点。 (这只是返回客户端的页面,而不是任何布局,DOM或脚本执行。)

但是,当我打开应用程序范围的跟踪(通过web.config)并查看跟踪输出时,从“Begin PreInit”到“End Render”的时间不到0.001秒。

我认为这是因为Trace.axd是在考虑WebForms的情况下构建的,而MVC绕过了传统的页面生命周期。

然而,即使我在OnActionExecuting / OnActionExecuted的开头和结尾添加自定义跟踪,时间仍然不到0.1秒。

有没有人知道在ASP.NET MVC中我需要挂钩才能让trace.axd输出报告准确的执行时间?

1 个答案:

答案 0 :(得分:7)

可能是action方法本身的时间不是执行的重要部分。尝试检查OnResultExecuting / OnResultExecuted之间的时间。这基本上是用HTML实际呈现页面的时间,而OnActionExecuting / OnActionExecuted(基本上)是为视图设置数据的时间。

请注意,如果您使用的是LINQ,则数据查询本身可能会延迟到呈现页面(枚举的模型)。也就是说,缓慢可能不是由于页面复杂性,而是数据访问,即使在执行结果时花费了时间。