2014-04-23 324 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> 
相關問題