2012-11-04 59 views
0

我有一個應用程序,使用靜態類過大和複雜,因此無法使用標準的Asp.net會話。更多的問題與我的應用程序的穩定性有關,因爲當由於estarna dll中的錯誤導致池關閉時,所有靜態變量都將被釋放。Asp.Net靜態對象提供可用性

我不知道是否有每個「客戶端」打開一個池的設置。所以如果一個用戶不摔倒別人。

+2

請澄清一下...靜態類太過於流利,而且使用Asp.NET會話又太複雜了麼?你面臨的具體問題是什麼? – Kevin

+0

是一個無法序列化與機器交互的quarda值的類。爲此,我無法使用默認的asp.net會話。我使用一個靜態類並且運行良好,而且端點只與池的穩定性有關。因爲在一個普通的應用程序中,當池關閉時,會話被恢復並準備就緒,就像在我的情況中一樣,這個靜態對象與池無關。是否有一個項目將這個靜態對象與池分開,甚至可以自由訪問這個內存? –

回答

0

如果您有一個靜態類,則應用程序池中只有一個該類。如果這個類對每個用戶有不同的東西,它不應該是靜態的。如果該類只包含與特定會話無關的一般信息,並且您不想將其作爲實例類,請確保靜態類的構造函數中沒有引發異常。

+0

科學而不是在我的情況下,我不得不使用這個類作爲靜態Intent做一臺機器。一些用戶認爲,在我的案例中加入了更多的內容,不穩定性是一般的應用,因爲連接exeplo銀行在池中給出了一個致命的錯誤,因此他將這個類靜態放棄。 –

0

除了YetAnotherSoftwareDeveloper的回答,應用程序池用於提供一種機制,可用於隔離應用程序出於穩定性和安全性的原因,而不是隔離單個客戶機會話。

如果您有一個不穩定的應用程序,可以通過將其隔離在其自己的應用程序池中來避免對其他應用程序產生不利影響。這不會對有問題的應用程序提供任何穩定作用,但會防止它在同一臺服務器上崩潰其他應用程序。

+0

是我的問題不是靜態類。它是穩定的並且與其他部分沒有問題,因爲連接到數據庫的連接器發生崩潰並關閉池。 –

+0

您正在使用哪些DBMS,以及它在崩潰時拋出什麼異常? – Kevin

+0

所以我正在評估是非常不穩定的,調試器告訴我,這是一個在一個變量,導致此意外關閉的鎖上的缺陷。使用.NET –