经过一段时间网站即将入睡,这就是为什么我的计时器事件什么都不做.
是否有IIS设置或拒绝睡眠的其他方式?
解决方法
http://forums.asp.net/t/1950241.aspx?ASP+NET+MVC+website+goes+to+sleep+How+to+nake+it+always+awake+
有很多方法可以在.NET中设置超时(会话超时,表单身份验证超时和IIS相关超时).您的问题很可能与IIS空闲超时有关,如下所述:
在IIS中设置应用程序IdleTimeout属性: –
您可能需要检查IIS中的超时配置,因为此超时将覆盖web.config中定义的超时.
在IIS中有一个名为Idle Timeout的设置,默认为20分钟.这可以解释您的早期超时问题.
Configuring the IdleTimeout property within IIS
Scott Hanselman还解决了在this blog post中使用表单身份验证时处理超时时可能出现的奇怪问题.
其他一些常见的超时可能是通过会话或表单身份验证,如下所示进行调整.
在web.config中设置SessionState超时: –
您可以在元素中的web.config文件中更新会话状态的超时属性(如果这实际是超时),如下所示(默认为20分钟,如下所示):
<configuration> <system.web> <!-- Adjust the timeout property below --> <sessionState mode="InProc" timeout="20"></sessionState> </system.web> </configuration>
在web.config中设置Forms身份验证超时: –
您可以通过调整web.config文件元素中的timeout属性来调整应用程序中Forms Authentication的特定超时属性.您还需要注意,如果您将slidingExpiration属性与超时结合使用,因为它们实际上可以比列出的超时更早到期.
<authentication mode="Forms"> <forms name=".ASPXAUTH" loginUrl="~/Login.aspx" timeout="yourTimeoutInMinutes"></forms> </authentication>
因此,如果您想将身份验证令牌保持“活动”的数量扩展为360分钟(6小时),您可以将其设置如下所示:
<authentication mode="Forms"> <forms name=".ASPXAUTH" loginUrl="~/Login.aspx" timeout="360"></forms> </authentication>