2010-10-12 121 views
6

我有一个名为Global的类,它来自HttpApplication混淆global.asax?

奇怪的是,我看到里面Global看起来像很多方法:

void Application_Start(object sender, EventArgs e) 
{ 
} 

的代码是这种方法里面肯定执行,因此该方法被从什么地方调用,但在哪里?该方法没有标记为重载?

其次,我从Global派生出一个类,我们称之为GlobalFoo

同样,如果我创建了一个名为Application_Start()的方法,它将在我的派生类中被调用,否则Global中的任何内容都不会被调用,因此我可能会从空类中派生。

任何人都可以提供任何建议吗?我错过了ASP.NET的一些基本部分吗?

回答

1

so the method is being called from somewhere, but where?

此功能从应用程序池(从已分配给每个池)调用,以显示你的应用程序的启动/结束事件,并帮助您与初始化。

每个分配用于运行Web应用程序的池都运行这些函数。

asp。净是帮助您创建不同的对象/代码外部或不能够同时运行,这就是为什么你看到所有已注册的代码运行的。它有助于创建不同思维的多个“启动”例程。

is an example,该模块只是他检查安全协议自......你不必在你的代码改变什么,只是注册。

-1

Global.asax文件是用于声明和处理应用程序和会话级别的事件和对象的IIS Web服务器

上运行的ASP.NET网站的可选文件中的一些在这个关键事件文件是:

  • Application_Init:当应用程序第一次初始化时触发。
  • Application_Start:应用程序第一次启动时启动。
  • Session_Start:当用户的会话开始时第一次触发。
  • Application_BeginRequest:每当有新的请求进入时触发。
  • Application_EndRequest:应用程序终止时触发。
  • Application_AuthenticateRequest:表示请求已准备好进行身份验证。
  • Application_Error:在应用程序内发生未处理的错误时触发。
  • Session_End:每当单个用户会话结束或超时时触发。
  • Application_End:应用程序结束或超时时触发(通常用于应用程序清理逻辑)。

有关Global.asax事件的完整列表,请参阅“Global.asax Events”。

+0

我真的不关心事件本身,我很困惑他们在哪里/如何被称为 – maxp 2010-10-12 12:06:12

0

IIS通过asp.net isapi过滤器调用不同的Global.asax事件。

也许this article将有助于解释。