跟踪不在MVC中的OnResultExecuted()中工作

时间:2010-03-15 11:20:23

标签: asp.net-mvc trace action-filter

我正在尝试从ASP.NET MVC应用程序输出到Trace.axd。我在OnActionExecuting(),OnActionExecuted(),OnResultExecuting()和OnResultExecuted()中都有跟踪,除了OnResultExecuted()之外,它们都输出到Trace.axd。

为了完整性,这里是我的代码(与OnActionX()完全相同):

    protected override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        resultStartTime = DateTime.Now;
        filterContext.HttpContext.Trace.Warn("OnResultExecuting: " + actionStartTime);
        base.OnResultExecuting(filterContext);
    }

    protected override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        DateTime resultEndTime = DateTime.Now;
        filterContext.HttpContext.Trace.Warn("OnResultExecuted: " + resultEndTime);
        filterContext.HttpContext.Trace.Warn("OnResultExecuted - OnResultExecuting: " + (resultEndTime - resultStartTime).TotalSeconds);
        base.OnResultExecuted(filterContext);
    }

我正在使用ELMAH,但我已将其禁用,但我仍然遇到问题。

1 个答案:

答案 0 :(得分:5)

在OnResultExecuted()运行时输出到IIS跟踪提供程序为时已晚。您可以写入Debug trace provider。见http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

相关问题