2013-03-14 98 views
0

我有一個Windows Communication Foundation(WCF)服務正在運行。當一個服務被調用時,有時服務必須重新啓動並填充所有的靜態值,因爲我猜Web服務器會在非活動時間後關閉服務。如果它被不斷調用,它將保持活動狀態並且所有的值都被填充。我在那個類中有一個靜態整數供服務調用使用,例如我有30個整數,但我有時使用服務調用來設置該靜態值,以便新值爲20,但由於該服務被解析爲Web服務器經過一段時間的不活動後,該值再次初始化爲30.是否有辦法將永久性的30值設置爲20當WCF服務被構造(靜態構造函數)被調用?有沒有更好的方法來做到這一點?我希望通過Web服務調用時想要永久更改這些值中的2-3個。永久更改靜態值

+3

聽起來像是你需要使用一個數據庫或類似的存儲介質上的這些值的WCF服務。 – ChrisBint 2013-03-14 17:04:02

+1

http://redis.io/非常適合這個(輕量級,持久性會話和服務器) – 2013-03-14 17:05:07

回答

0

我會建議使用內置的設置靜態類

Settings.Default["StaticValue"] = "30"; 
Settings.Default.Save(); 

http://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx

+0

我懷疑這是線程安全的。 'Settings'是爲Windows窗體設計的,它通常只有一次觸摸該代碼的單個線程。與WCF不一樣。 – 2013-03-15 00:57:54

0

即使沒有重新啓動,如果您只是將此值存儲在內存中,它不會被永久存儲。一個數據庫或類似的會很好,但如果你沒有使用任何數據庫的數據庫,使用一個來存儲單個值似乎是矯枉過正。如何寫入文件?