在Windows 8上運行時,我已啓用IIS的Windows功能安裝選項中的IIS的Application Initialization功能。IIS應用程序初始化不會觸發ASP.NET應用程序
我試圖讓ASP.NET Web應用程序立即啓動並在應用程序池重新啓動時觸發Application_Start。我遵循this tutorial的指示,但是在設置ApplicationHost.config和web.config中的值之後,我看不到任何內容正在觸發。
下面是我設置(這似乎符合文章建議是什麼):
<applicationPools>
<add name="MPress" autoStart="true"
enable32BitAppOnWin64="true"
startMode="AlwaysRunning">
<processModel identityType="LocalSystem" setProfileEnvironment="true" />
</applicationPools>
<sites>
<site>
<application path="/MPress.Workflow.WebQueueMessageManager"
applicationPool="MPress" preloadEnabled="true">
<virtualDirectory path="/" physicalPath="C:\Projects2010\Clients\MPress\MarvelPress.Workflow.WebQueueMessageManager" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
</sites>
然後在當地web.config中我有:
比doAppInitAfterRestart<system.webServer>
<applicationInitialization remapManagedRequestsTo="Startup.htm"
skipManagedModules="true"
doAppInitAfterRestart="true">
<add initializationPage="default.aspx" />
</applicationInitialization>
</system.webServer>
其他標誌與上述文章中的設置完全匹配,除了指向我的虛擬應用程序和應用程序池。
看起來應用程序池自動加載工作 - 如果我停止並重新啓動IIS w3wp我看到應用程序池顯示在任務列表中。但是使用Process Explorer,我可以看到EXE沒有加載.NET,只是坐在那裏。沒有.NET運行時DLL被加載,所以看起來沒有請求被觸發。
真正糟糕的是,沒有真正的文檔和每個設置所需的預期值。 doAppInitAfterRestart標誌在我找不到的地方記錄下來。我也留下了相同的結果。我也不是100%URL的語法。 MSDN文章指向「/default.aspx」,我也嘗試過,但無濟於事。
我也在IIS中打開了失敗的請求追蹤,看看假冒的請求是否失敗,但沒有任何顯示。它看起來像應用程序池重新啓動時,Site Level負載不會觸發。
這裏提到的所有設置也可以通過Windows 8的IIS管理界面進行訪問,並且一切看起來都正確。
我不知道還有什麼要檢查或我可能會丟失什麼。任何想法讚賞。