我有一个名为Global
的课程,派生自HttpApplication
。
奇怪的是,我在Global
中看到很多方法看起来像:
void Application_Start(object sender, EventArgs e)
{
}
代码肯定是在这个方法中执行的,所以这个方法是从某个地方调用的,但是在哪里呢?这些方法没有标记过载?
其次,我从Global
派生了一个班级,我们称之为GlobalFoo
。
同样,如果我创建一个名为Application_Start()
的方法,它将在我的派生类中被调用,否则Global
中的任何内容都将被调用,因此我也可能从一个空类派生。< / p>
有人可以提供任何建议吗?我错过了ASP.NET的一些基本部分吗?
答案 0 :(得分:1)
所以这个方法是从某个地方调用的,但是在哪里呢?
从应用程序池中调用此函数(来自您已分配的每个池),以指示应用程序的启动/结束事件并帮助您进行初始化。
分配用于运行Web应用程序的每个池都运行这些功能。
asp.net 帮助您创建不同的对象/代码可以一起运行,而为什么您会看到所有已注册的代码都运行。它有助于创建不同的“启动”例程,做出不同的思考。
这个is an example,这个模块只是由他自己检查安全协议......你不需要改变你的代码,只需注册它。
答案 1 :(得分:0)
IIS通过asp.net isapi过滤器调用不同的Global.asax事件。
或许this article将有助于解释。
答案 2 :(得分:-1)
Global.asax文件是一个可选文件,用于声明和处理IIS Web服务器上运行的ASP.NET网站的应用程序和会话级事件和对象
此文件中的一些关键事件是:
有关Global.asax事件的完整列表,请参阅“Global.asax Events”。