2016-01-06 95 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足以讓我工作。 –

相關問題