問題:Web超過20分鐘(默認時間)沒有訪問,無活動,Web進入休眠狀態
詳情:在Web系統中長時間持續、定時執行任務,如當前的RFID系統中的報文解析服務。Web系統部署在運行環境后,超過默認時間無訪問,Web系統會自動休眠,導致指定任務無法繼續執行。
測試運行環境:
win8系統x64專業版
IIS8.0
SQLServer2008R2X64
Web基本信息:
.NETMVC5
EntityFramework.6.1.3
解決方案:
1、使用計劃任務
2、使用Widows服務
3、使用IIS8.0的功能ApplicationInitialization
本次使用解決方案第三點
步驟:
1、為IIS添加ApplicationInitialization的功能模塊
2、找到目錄C:/Windows/System32/inetsrv/config打開applicationHost.config配置文件
?。?)查找system.applicationHost/applicationPools/name=".NETv4.5"的Add節點
?。?)添加屬性startMode="AlwaysRunning"
示例:<addname=".NETv4.5"startMode="AlwaysRunning"managedRuntimeVersion="v4.0"/>
?。?)查找system.applicationHost/sites/部署項目的site/application
(4)添加屬性preloadEnabled="true"
示例:<applicationpath="/"preloadEnabled="true"applicationPool=".NETv4.5">
3、打開Web項目的web.config文件
(1)找到節點system.webServer
?。?)添加或修改配置信息
<applicationInitializationremapManagedRequestsTo="Startup.htm"skipManagedModules="true">
<addinitializationPage="/default.aspx"/>
</applicationInitialization>
示例:
<system.webServer>
<security>
<requestFiltering>
<requestLimitsmaxQueryString="4080"></requestLimits>
</requestFiltering>
</security>
<modulesrunAllManagedModulesForAllRequests="true">
<removename="FormsAuthentication"/>
</modules>
<urlCompressiondoDynamicCompression="false"/>
<applicationInitialization
remapManagedRequestsTo="Startup.htm"
skipManagedModules="true">
<addinitializationPage="/default.aspx"/>
</applicationInitialization>
</system.webServer>
4、結束,重啟IIS
netstopw3svc&netstartw3svc