PreApplicationStartMethod实际上何时被触发运行?

使用WebActivator PreApplicationStart方法时,实际触发绑定到此方法的方法是什么? 当IIS7启动App Pool时? 当第一个请求发送到网络服务器? 别的什么? 如果您有答案,还可以提供您获取此信息的位置的参考吗?

在IIS 7.5中是否有任何变化?

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

PreApplicationStartMethodAttribute在ASP.NET运行时启动应用程序时运行,并且即使在app_start事件被触发之前代码也在管道中提前运行。 因此,为了回答您的问题,当第一次请求Web服务器时(这将反过来启动应用程序启动)将触发。

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

如果您使用自动启动function,则IIS将在您的应用池循环中重新启动您的应用程序,从而触发PreApplicationStart

@ VinayC答案的一小部分补充:如果您在PreApplicationStartMehod中添加断点并调试Web应用程序,您可能会看到每次请求都会调用它。 通过写入PreApplicationStartMethod中的日志文件,我很容易确认这不是通常的行为。 如果未附加到调试器,则此方法不会在每个请求上运行。