Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 最早访问.net生命周期_C#_.net_Iis 7_Httpmodule_Lifecycle - Fatal编程技术网

C# 最早访问.net生命周期

C# 最早访问.net生命周期,c#,.net,iis-7,httpmodule,lifecycle,C#,.net,Iis 7,Httpmodule,Lifecycle,在查看IIS7应用程序生命周期的.net之后: 为了获得最佳性能,我想找到一种方法,在创建HttpContext对象之后,但在创建HttpApplication之前,立即启动代码。(在加载HttpApplication类之后,但在使用HTTP模块的构造函数触发其任何事件之前,很容易运行代码,如下所示: public class AuthModule : IHttpModule { public AuthModule() {

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

为了获得最佳性能,我想找到一种方法,在创建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
    }

< P>我知道我不能访问用户对象,但是我不需要它。

如果你想要比平常的页面事件早一些的话,你可以考虑使用其中一个事件。

查看。如果你想要比正常页面事件早的话,你可以考虑使用其中一个事件。

你不能确定。您的代码在创建HttpApplication实例之前启动,因为这些实例可以重用

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

这与性能有什么关系?您真的认为创建HttpApplication实例的时间将在您的性能中注册吗


退后一步,重新考虑。

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

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

这与性能有什么关系?您真的认为创建HttpApplication实例的时间将在您的性能中注册吗


退后一步,重新考虑。

您好。您的链接指向的是一篇关于“IIS 5.0和6.0的ASP.NET应用程序生命周期概述”的文章。不是7.0(尽管文章中有指向它的链接)。您好。您的链接指向的是一篇关于“IIS 5.0和6.0的ASP.NET应用程序生命周期概述”的文章。不是7.0(尽管文章中有指向它的链接).他已经读过了-这是他帖子中的第一句话,你显然读得不太透彻!他已经读过了-这是他帖子中的第一句话,你显然读得不太透彻!深入了解这一点让我对模块和处理程序有了更好的理解(这甚至是.net处理其所有页面的方式)我现在看到,它试图在多个上下文中尽可能多地重用,以便在HttpApplication之前的内容可以被“缓存”。即使在HttpApplication中,我也使用内核来计时每个进程传递的滴答声,这需要0.2秒,这是很长的时间,但在编译后的第一次只需要这么长的时间,然后缓存结果,所以我没有注意到后续请求所需的时间要少得多。谢谢!!深入了解这一点让我有了更好的理解模块和处理程序(甚至是.net处理所有页面的方式)的组合,我现在看到它试图在多个上下文中尽可能多地重用,以便在HttpApplication之前的内容可以“缓存”。即使在HttpApplication中,我也使用内核来计时每个进程传递的滴答声,这需要0.2秒,这是很长的时间,但在编译后的第一次,它只需要那么长的时间,然后缓存结果,所以我没有注意到后续请求所需的时间要少得多。谢谢!!