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

问题描述:

我想从ASP.NET MVC应用程序输出到Trace.axd。我在OnActionExecuting(),OnActionExecuted(),OnResultExecuting()和OnResultExecuted()中有跟踪,并且除了OnResultExecuted()之外,它们都输出到Trace.axd。在MVC中的OnResultExecuted()跟踪不工作

为了完整性这里是我的代码(完全一样的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但我有禁用它,我仍然得到这个问题。

+0

也许这是MVC中的错误? – stusherwin 2010-06-09 11:18:42

OnResultExecuted()运行时输出到IIS跟踪提供程序太晚了。您可以写入调试跟踪提供程序。请参阅http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx