我有一個Web應用程序在IIS7下運行。我將我的全局變量存儲在帶有靜態變量的類中。該類稱爲SessionVariables和裏面,比如我有以下幾點:設置應用程序池idletimeout爲0的副作用
public class SessionVariables
{
public static string PreferedColor= "Black";
}
我設置這個變量在另一頁AccountSettings.aspx在那裏我有顏色名稱的下拉。當用戶選擇一種顏色,並點擊保存,這是正在運行的代碼。
protected void btnSave_click(object sender, EventArgs e)
{
SessionVariables.PreferedColor= ddlColorNames.Text;
}
如果申請去閒置5分鐘PreferedColor的靜態值始終重置爲默認值,因爲由於空閒超時的應用程序池設置被清除靜態值(分鐘)設置爲5。我將其從IIS應用程序池更改爲0,問題消失,應用程序池不再回收。我想知道這個設置是否有任何副作用。
後清零靜態變量缺少配置感謝Steve,這些變量是應用程序全局變量。你知道如果將它們從靜態類中的靜態變量更改爲Session []變量將執行該作業還是將它們清除?將它們添加到數據庫不是一個選項。 –
我不是100%,但我相信你必須做的不僅僅是一個普通的Session變量,你必須看看這裏:http://msdn.microsoft.com/en-us/library/ms178586。 aspx來完整地閱讀它,但基本上你需要StateServer或SQLServer類型的會話,所以它會持續圍繞回收。 –