我有一个应用程序需要在启动时做一些工作(在第一个请求进入之前)。 我在global.asax文件(Application_start方法)中添加了初始化代码,但是在执行iis重置后,这段代码似乎没有被命中。 当iis重置时,是否有一个在asp.net应用程序中触发的事件?
感谢。
答案 0 :(得分:4)
应用程序启动在第一次请求时发生,而不是在iisreset上发生。
网站没有自行启动..
请参阅“重新启动Web进程重新启动缓存项目回调”here。
在这种情况下,服务将停止 除非页面被击中,否则运行 调用Application_Start。 仅当调用Application_Start时才调用 第一次访问页面 在一个网络项目中。
我建议使用包含iisreset和“iexplore mypage”调用的批处理文件
编辑:显然,您可以使用application end to trigger application start. YMMV
答案 1 :(得分:3)
这可能对您有所帮助。
这些功能是IIS 7.5的新功能,仅适用于Windows Server 2008 R2 / Windows 7。
使用ASP.NET 4自动启动Web应用程序
某些Web应用程序在准备处理请求之前需要加载大量数据或执行昂贵的初始化处理。今天使用ASP.NET的开发人员经常使用应用程序的Global.asax文件中的“Application_Start”事件处理程序(在第一次执行请求时触发)执行此工作。然后,他们设计自定义脚本以向应用程序发送虚假请求以定期“唤醒”并在客户点击它之前执行此代码,或者只是让访问应用程序的不幸第一个客户等待此逻辑完成后再处理请求(这会导致他们长时间的延迟)。
ASP.NET 4附带了一个名为“自动启动”的新功能,可以更好地解决此问题,并且当ASP.NET 4在IIS 7.5(Windows 7和Windows Server 2008 R2附带)上运行时可用。自动启动功能提供了一种受控方法,用于启动应用程序工作进程,初始化ASP.NET应用程序,然后接受HTTP请求。
修改:链接到有关自动启动功能的详细信息。
http://www.asp.net/LEARN/whitepapers/aspnet4#0.2__Toc253429241