如何在IIS10中正确启动asp.net应用程序

时间:2016-01-06 13:45:43

标签: asp.net iis autostart

我试图让我的ASP.NET应用程序在应用程序池运行时自动启动。

根据网上的大量参考资料,我已经完成了以下工作:

  • 将应用程序池设置为StartMode=AlwaysRunning
  • 将有问题的网站(属于前面提到的游泳池)设置为preloadEnabled=true
  • Application Initialization功能安装到Windows安装
  • <applicationInitialization>节点添加到web.config的<system.webServer>节点

Web应用程序基于Owin,并且在其Startup.Configuration()方法中有一个简单的log4net日志记录语句。现在重新启动IIS时,我看到w3svc.exe进程正在运行,所以我知道StartMode=AlwaysRunning正在运行。但是,日志文件中没有日志消息。

导航到应用程序中的任何URL(甚至是不存在的URL)将启动应用程序并添加日志行。

由于在应用程序启动时所做的实际工作,我真的希望应用程序真正预加载,但我似乎无法完成它。

搜索此网站遗憾的是我无法找到解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:16)

为了回答我自己的后代问题,似乎我走在正确的轨道上。要让应用程序在IIS10中启动(我还假设在IIS 8中),您只需要以下三个步骤:

  1. 将应用程序池设置为StartMode=AlwaysRunning,以确保应用程序池始终运行w3svc.exe进程。
  2. 将有问题的网站(属于前面提到的游泳池)设置为preloadEnabled=true
  3. 按照here
  4. 说明将Application Initialization功能安装到Windows安装中

    需要注意的一件重要事情是,如果以前未在计算机上安装Application Initialization任务,则必须重新启动计算机。这是我最后一次错过的,导致浪费了相当多的时间寻找其他东西:(

    无论如何,设置这三件事会导致应用程序实际完成初始化,如果您想设置一些调度任务(例如使用Quartz NuGet包),这将非常有用。

    请注意,如果您设置如上所述的自动初始化,应用程序也将在关闭超时到期后以及应用程序池回收时自动启动。