我正在尝试让我的ASP.NET应用程序在应用程序池运行时自动启动.
根据网上很多很多参考资料,我已经完成了以下工作:
将应用程序池设置为 StartMode=AlwaysRunning
将有问题的站点(属于前面提到的池)设置为 preloadEnabled=true
将该Application Initialization
功能安装到Windows安装
将
节点添加到web.config的
节点
Web应用程序基于Owin,并且在其Startup.Configuration()
方法中有一个简单的log4net日志记录语句.现在重新启动IIS时,我看到w3svc.exe进程正在运行,所以我知道它StartMode=AlwaysRunning
正在运行.但是,日志文件中没有日志消息.
导航到应用程序中的任何URL(甚至是不存在的URL)将启动应用程序并添加日志行.
由于在应用程序启动时所做的实际工作,我真的希望应用程序真正预加载,但我似乎无法完成它.
搜索这个网站遗憾的是我无法找到解决方案.
提前致谢.
为了回答我自己的后代问题,似乎我走在正确的轨道上.要让应用程序在IIS10中启动(我还假设在IIS 8中),您只需要以下三个步骤:
将应用程序池设置为StartMode=AlwaysRunning
以确保始终为应用程序池运行w3svc.exe进程.
将有问题的站点(属于前面提到的池)设置为 preloadEnabled=true
Application Initialization
按照此处的说明将该功能安装到Windows安装.
需要注意的一件重要事情是,如果Application Initialization
以前未在计算机上安装任务,则必须重新启动计算机.这是我错过的最后一次导致相当一些时间浪费寻找其他东西:(
无论如何,设置这三个东西将导致应用程序实际完成初始化,这对于您想要设置一些调度任务(使用Quartz NuGet包)非常有用.
请注意,如果您设置如上所述的自动初始化,应用程序也将在关闭超时到期后以及应用程序池回收时自动启动.