问题: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配置文件
(1)查找system.applicationHost/applicationPools/name=".NETv4.5"的Add节点
(2)添加属性startMode="AlwaysRunning"
示例:<addname=".NETv4.5"startMode="AlwaysRunning"managedRuntimeVersion="v4.0"/>
(3)查找system.applicationHost/sites/部署项目的site/application
(4)添加属性preloadEnabled="true"
示例:<applicationpath="/"preloadEnabled="true"applicationPool=".NETv4.5">
3、打开Web项目的web.config文件
(1)找到节点system.webServer
(2)添加或修改配置信息
<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