C# 最早访问.net生命周期
在查看IIS7应用程序生命周期的.net之后: 为了获得最佳性能,我想找到一种方法,在创建HttpContext对象之后,但在创建HttpApplication之前,立即启动代码。(在加载HttpApplication类之后,但在使用HTTP模块的构造函数触发其任何事件之前,很容易运行代码,如下所示: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() {
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秒,这是很长的时间,但在编译后的第一次,它只需要那么长的时间,然后缓存结果,所以我没有注意到后续请求所需的时间要少得多。谢谢!!