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