Трассировка не работает в OnResultExecuted () в MVC - PullRequest
0 голосов
/ 15 марта 2010

Я пытаюсь вывести на Trace.axd из приложения ASP.NET MVC. У меня есть следы в OnActionExecuting (), OnActionExecuted (), OnResultExecuting () и OnResultExecuted (), и все они выводятся в Trace.axd, кроме 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, но я отключил его, и я все еще получаю проблему.

1 Ответ

5 голосов
/ 15 декабря 2010

Слишком поздно выводить в провайдер трассировки IIS к моменту запуска OnResultExecuted (). Вы можете написать поставщику трассировки отладки. см http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

...