我已经找了很长一段时间了,但没有找到答案。
我将把申请启动作为一个阶段。
大多数文档讨论的是Global.asax文件和Application_Start方法,它们只在第一个请求到达应用程序时调用一次,即使这种行为类似于订阅一个事件--它在技术上不是事件。
虽然生命周期事件(如BeginRequest、AuthenticateRequest等)可以作为事件通过应用程序实例访问,但Application.Start不是。
我可以在BeginRequest ()方法或Global.asax Init()方法中订阅Global.asax事件,但不能订阅如下所示的Application.Start阶段:
模块
public class MyModule : IHttpModule
{
public void Init(HttpApplication httpApplication)
{
httpApplication.BeginRequest += new EventHandler(ApplicationBeginRequest);
}
}全球
public class Global : HttpApplication
{
public override void Init()
{
BeginRequest += new EventHandler(ApplicationBeginRequest);
}
}我的问题:
由于应用程序实例中没有HttpApplication.Start事件可访问,所以Global.asax和"Application_Start“方法是订阅应用程序启动阶段的唯一希望吗?
发布于 2020-05-23 17:45:56
跳到Application_OnStart源代码之后,我发现HttpApplicationFactory类在Global.asax文件中查找一个名为HttpApplicationFactory或Application_Start的方法,然后使用反射=> ReflectOnMethodInfoIfItLooksLikeEventHandler().调用它。
我不知道为什么Application_OnStart不是事件,但很明显,它是以一种使用Application_Start或Application_Start方法的方式来处理的。
https://stackoverflow.com/questions/54650631
复制相似问题