最早访问.net生命周期

时间:2009-01-28 21:15:32

标签: c# .net iis-7 httpmodule lifecycle

在IIS7应用程序生命周期中查看.net之后:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

为了获得最佳性能,我希望在创建HttpContext对象之后但在HttpApplication之前找到一种方法来启动我的代码。 (在加载HttpApplication类之后,在使用HTTP模块的构造函数触发任何事件之前,很容易运行代码:

    public class AuthModule : IHttpModule 
    {     
        public AuthModule()
        {
            HttpContext.Current.Response.Write("hello world");
            HttpContext.Current.Response.End();
        }

        #region IHttpModule Members

        public void Dispose()
        {  }

        public void Init(HttpApplication context)
        {   }

        #endregion
    }

我知道我无法访问User对象,但我不需要它。

2 个答案:

答案 0 :(得分:1)

在创建HttpApplication实例之前,您无法确定代码是否已启动,因为这些实例可能会被重用。

此外,在此阶段运行代码超出了管道的范围。它应该让你问自己这是否真的是一件明智的事情。

这与性能有什么关系?你真的认为创建一个HttpApplication实例的时间会在你的表现中注册吗?

退一步重新考虑。

答案 1 :(得分:0)

查看life-cycle events on MSDN。如果您想要比普通页面事件更早的内容,可以考虑使用其中一个事件。