2014-04-23 288 views
5

我在IIS中运行我的网站,并且我有一些运行计时器和事件。 (我知道这是不好的设计和计划重新编码它,但现在我想检查是否有快速解决方案)是否可以在IIS中禁用ASP.NET网站睡眠?

经过一段时间网站将要睡觉,这就是为什么我的计时器事件什么也不做。

有没有IIS设置或其他方式拒绝睡觉?

回答

4

以及详细的在这里,这可能是有用的你: -

http://forums.asp.net/t/1950241.aspx?ASP+NET+MVC+website+goes+to+sleep+How+to+nake+it+always+awake+

有相当多的方式来内.NET设置超时(会话超时,窗体身份验证超时和IIS相关超时) 。

IIS中设置应用程序IdleTimeout属性:下面所提到的问题,最有可能涉及到IIS空闲超时 -

您可能需要检查你的超时配置为IIS中,因为超时将覆盖web.config中定义的超时。

在IIS中有一个名为空闲超时的设置,默认为20分钟。这可以解释您的提前超时问题。

Configuring the IdleTimeout property within IIS

斯科特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中的窗体身份验证超时: -

您可以通过调整web.config文件元素中的超时属性来调整应用程序中表单身份验证的特定超时属性。您还需要注意,如果您将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> 
相关问题