使用 Response.Redirect 进行 Web 日志记录



我们为MVC应用程序提供了一个使用HttpModule的日志记录框架。 在其他功能中,我们使用它来计时请求的响应时间。

我们通过附加 PostAcquireRequestState 来初始化它以启动计时。 我们附加到PostRequestHandlerExecute停止计时并记录到数据库。 请参阅下面的初始化逻辑。

    public void Init(HttpApplication context)
    {
        context.PostAcquireRequestState += OnBeginRequest;
        context.PostRequestHandlerExecute += LogRequest;
    }

对于 ASP.Net MVC,这很好用。

我们正试图使其适应我们的旧版WebForms应用程序。 这两个事件正常工作,除非调用 Response.Redirect(( 函数。 在搜索有关页面生命周期的多个网页时,我找不到有关在执行 Response.Redirect 后抛出的事件的信息。

经过进一步的实验,我发现我可以使用 EndRequest 事件。

        context.PostAcquireRequestState += OnBeginRequest;
        context.EndRequest += LogRequest;

最新更新