c# - PreApplicationStartMethod 何时真正被触发运行?

标签 c# asp.net asp.net-mvc-3 .net-4.0

当使用 WebActivator PreApplicationStart 方法时,究竟是什么触发了绑定(bind)到此方法的运行? IIS7什么时候启动了App Pool?第一次向网络服务器发出请求时?还有别的吗?如果您有答案,能否请您提供一个引用信息,说明您是从哪里获得这些信息的?

这些在 IIS 7.5 中有任何变化吗?

最佳答案

WebActivator PreApplicationStart 实际上依赖于 ASP.NET PreApplicationStartMethodAttribute (请参阅 this 链接以了解网络激活器的工作原理)。

PreApplicationStartMethodAttributeASP.NET runtime starts up 时有效应用程序和代码甚至在 app_start 事件被触发之前就在管道中运行。因此,为了回答您的问题,触发器将在向 Web 服务器发出第一个请求时发生(这将反过来启动应用程序启动)。

请注意,触发器与 ASP.NET 应用程序启动相关,与应用程序池无关。您的应用程序池可能由于其他一些应用程序(可以是非 ASP.NET 应用程序)而正在运行,但是当第一个针对 ASP.NET 应用程序的请求出现时,由于应用程序启动,此触发器将发生(对于特定应用程序)。

如果您使用 auto-start功能,然后 IIS 将在您的应用程序池回收中重新启动您的应用程序,因此 PreApplicationStart 将被触发。

关于c# - PreApplicationStartMethod 何时真正被触发运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955866/

相关文章:

c# - 移动进度条不在 c# wpf 中显示百分比

javascript - 如果使用 javascript 在 ASP.NET 中页面验证失败,如何禁用提交按钮

c# - Response.Redirect() 将绝对 URL 作为相对 URL 处理

c# - 查看一组实数的快速方法

c# - 这可以创建 GTM.js 服务器端逻辑吗?

用于解决跨线程异常的 C# 扩展

c# - 在 ASP.NET MVC 5 中,什么方法设置 User 对象?

c# - HandleUnauthorizedRequest 未覆盖

asp.net-mvc - 在同一页面中显示搜索表单及其结果的最佳方式?

asp.net-mvc - 在 asp.net mvc 中验证用户是否已通过身份验证的最佳位置在哪里