MvcApplication 是 MVC 3 Web 应用程序中的单例吗?为什么我找到了 3 个实例?
我的步骤:(VS2010 SP1 + ASP.NET MVC 3 工具更新)
- 创建一个默认的 Internet MVC 3 应用程序(带有帐户示例)
- 在 global.asax 中添加 MvcApplication() 构造函数,并在其中设置断点
- 按 F5 调试
我发现构造函数被调用了 3 次!
此致,
扎克@Shine
===编辑===
更正:
为 1 个 Web 应用找到 2 个实例,而不是 3 个。经过仔细检查,我发现我的解决方案包含 2 个 Web 应用程序,删除其中一个后,我可以找到左侧应用程序的 2 个实例。
这是日志(数字是 MvcApplication 实例的哈希码)
MvcApplication(): 41516761
Application_Start(): 41516761
MvcApplication(): 56552081
Application_AuthenticateRequest(): 56552081
Application_AuthenticateRequest(): 56552081
Application_AuthenticateRequest(): 56552081
MvcApplication_Disposed(): 56552081
Application_End(): 41516761
如图所示,一个实例用于处理开始、结束事件,另一个用于处理请求。