2016-01-06 127 views
4

我试图让我的ASP.NET应用程序在应用程序池运行时自动启动。如何在IIS10中正确自动启动asp.net应用程序

按地段和大量文献的网上我已经做了以下内容:

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

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

导航到应用程序中的任何网址(即使是不存在的网址)都会启动应用程序并添加日志行。

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

正在搜索此网站我很遗憾无法找到解决方案。

在此先感谢。

+0

您是否安装了Web服务器|应用程序开发|应用程序初始化服务器功能?请参阅http://www.iis。net/learn/get-started/whats -new-in-iis-8/iis-80-application-initialization#TOC301259895 –

+0

我确实做过了,虽然我不确定发生了什么变化,但它现在正在工作。我想我只是错过了需要重新启动或什么的。 – Robba

回答

9

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

  1. 设置应用程序池StartMode=AlwaysRunning以确保w3svc.exe过程中总是运行应用程序池。
  2. 设置有问题的网站(属于beforementioned池),以preloadEnabled=true
  3. 安装Application Initialization功能将Windows安装按说明书here。需要注意的

一个重要的事情是,如果Application Initialization任务以前没有在机器上安装,你必须重新启动计算机。这就是我错过了最后一次导致相当一段时间浪费了其他东西:(

无论如何,设置这三件事情会导致应用程序实际上经历它的初始化,这是特别有用的,如果你想设置一些调度任务(使用Quartz NuGet包EA)。顺便说一下,如果你设置自动初始化像上面,应用程序也会自动关机后超时已经过期,在应用程序池回收开始

注意

+1

你做了我的一天。尽管我不必重启机器,但iisreset足以让我工作。 –

相关问题