使用WebActivator PreApplicationStart方法时,实际触发绑定到此方法的方法是什么?当IIS7启动App Pool时?当第一个请求发送到网络服务器?别的什么?如果您有答案,还可以提供您获取此信息的位置的参考吗?
IIS 7.5中是否有任何变化?
答案 0 :(得分:25)
WebActivator PreApplicationStart
实际上依赖于ASP.NET PreApplicationStartMethodAttribute(请参阅this链接以了解网络激活器的工作原理)。
PreApplicationStartMethodAttribute
才有效。因此,为了回答您的问题,当第一次向Web服务器发出请求时将触发该触发器(这将在应用程序启动时启动)。
请注意,触发器与ASP.NET应用程序启动有关,而与应用程序池无关。您的应用程序池可能正在运行,因为某些其他应用程序(可能是非ASP.NET应用程序)但是当第一个请求来自ASP.NET应用程序时,此触发器将发生(对于特定应用程序),因为应用程序已启动。
如果您使用的是auto-start功能,则IIS会在您的应用池循环中重新启动您的应用,因此PreApplicationStart
将被触发。
答案 1 :(得分:8)
@ VinayC答案的一个小补充:如果您在PreApplicationStartMehod中添加断点并调试Web应用程序,您可能会看到每次请求都会调用它。通过写入PreApplicationStartMethod中的日志文件,我很容易确认这不是通常的行为。如果未附加到调试器,则此方法不会在每个请求上运行。