2008-10-26 40 views
1

我在IIS中託管我的第一個WCF服務。我有兩個方法,1在WCF服務上設置一個字符串變量,另一個來檢索它。使用的接口是:WCF變量生存期/狀態

[OperationContract] 
string ReturnText(); 

[OperationContract] 
void SetText(string s); 

BasicHttpBinding被使用。使用客戶端調試器逐步調試服務可以發現,使用SetText可以正確設置字符串的值,但是當我立即執行返回文本時,字符串會回到空值。

我可能很簡單,但我認爲在打開服務連接和關閉服務之間保留了WCF服務的所有值。

爲什麼Set和Get之間的值會丟失?

回答

7

默認情況下,會話較少,實例是每個呼叫。見

http://msdn.microsoft.com/en-us/library/ms731193.aspx

一些首發的信息,但爲了整個呼叫有狀態,你要麼需要在服務器上PerSession或單實例模式,在前者的情況下,配置的結合支持會話(以便這兩個調用可以作爲相同會話連接的一部分進行關聯)。

4

感謝Brian,那個鏈接保存着我需要的信息。我已經添加

[的ServiceContract(SessionMode = SessionMode.Required)]

我的接口/合同,它自動地現在的作品!

2

對於易失性值,您也可以將該值存儲在靜態變量中。這也將保持其呼叫狀態,只要wcf主機不回收/重啓