【问题标题】:How can I generate a complete trace.axd in ASP.NET MVC?如何在 ASP.NET MVC 中生成完整的 trace.axd?
【发布时间】:2009-07-18 04:59:13
【问题描述】:

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

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

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

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

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

有谁知道我需要在 ASP.NET MVC 中的哪个位置进行挂钩才能让 trace.axd 输出报告准确的执行时间?

【问题讨论】:

    标签: asp.net-mvc trace


    【解决方案1】:

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

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

    【讨论】:

    • 是的,OnResultExecuted 显示 9 秒延迟。现在要弄清楚为什么......(我总是 .ToList() 我的 Linq 在将它分配给模型之前,所以它不是延迟执行。我认为我糟糕的嵌套母版页可能是罪魁祸首。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    相关资源
    最近更新 更多