Время действия ASP.NET MVC - PullRequest
1 голос
/ 05 апреля 2009

Я хочу попробовать синхронизировать ASP.NET MVC ActionMethod.

Я думал, что хороший способ сделать это - использовать собственный заголовок.

Могу ли я использовать ActionFilterAttribute для этого? Кто-нибудь сделал это, или есть какая-то сборка в функциональности ASP.NET, чтобы сделать это?

Меня просто выгнали из Starbucks и я надеюсь, что кто-то получит ответ, прежде чем я вернусь домой. Обычно кто-то делает: -)

Ответы [ 3 ]

3 голосов
/ 05 апреля 2009

Вы можете попробовать Eqatec profiler . Это бесплатно:)

3 голосов
/ 05 апреля 2009

Я бы согласился, что трассировка asp.net будет наиболее подходящей для этой работы. Но работать с ActionFilter должно быть весело.

Этот код не был проверен.

public class TimingAttribute : ActionFilterAttribute
{
    Stopwatch stopwatch;

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        stopwatch = new Stopwatch();
        stopwatch.Start();
        base.OnActionExecuting(filterContext);
    }

    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        try
        {
            base.OnResultExecuted(filterContext);
        }
        finally
        {
            stopwatch.Stop();
            var ms = stopwatch.ElapsedMilliseconds;
            // your logging here. controller/action/request info could be extracted from filterContext
        }
    }
}
0 голосов
/ 05 апреля 2009

Я бы согласился с Шерианом, что трассировка будет лучшим выбором, поскольку она должна быть наиболее точной.

Я думаю, если бы я мог догадаться, что вы думаете о параметре атрибута, я бы предположил, что вы будете использовать отражение для сортировки динамически запуска и остановки таймеров в методах по мере их выполнения. Я думаю, это было бы круто ... но это могло бы добавить накладные расходы, давая ложные показания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...