And*_*ndy 21 asp.net httpapplication
有人可以解释为什么在应用程序启动时会多次调用派生自HttpApplication的自定义类的构造函数吗?
我的代码结构如下:
- global.asax中的My Global类派生自CustomApp类.
- CustomApp类派生自HttpApplication类
在全球类是在启动时创建的,但是当我把一个断点在构造函数,调用它几次!我以为应该只创建一个Application类的实例?
我错了吗?
UPD:Web服务器确实可以创建多个HttpApplication实例来处理同时进入的多个请求.当您在HttpApplication后代的构造函数中放置断点时,这一点尤其明显.客户端将要处理几个请求(http内容,CSS文件等),并为每个请求服务,Web服务器将创建HttpApp的新实例.所以,在编写应用程序初始化逻辑时要注意这一点.
mck*_*mey 15
我相信ASP.NET运行时可以为每个应用程序域创建多个HttpApplication.因此,HttpApplication.Init和Ctor可能不止一次被调用.
如果您想要只运行一次的初始化代码,则应使用Application_Start事件,该事件仅在每个应用程序中调用一次.