2011-04-15 65 views
0

我正在創建REST服務,我期望每個請求都能通過特定的「票證」。這樣我就不必創建會話(而我的客戶也不能支持它們)。如何在整個請求中保持變量值

我想將此票存儲在某處直到請求完成。我將調用方法,他們將調用其他方法,連接等 - 我只是希望在請求期間可以從代碼中獲取這些數據。

我知道靜態類/變量將無法工作,因爲它在應用程序範圍內。

我的選擇是什麼?

編輯: 基本上,我想某種存儲「袋」我可以在我的web服務方法填充,這將是從應用程序的任何地方訪問。而這種需求只限於這個請求的長度。

+0

您問服務器,客戶端還是兩者?我認爲我們需要分離每個細節。 – 2011-04-15 17:16:01

+0

僅限服務器。我不在乎客戶。所以,我接到電話,它有一些「票」。我想保留這些數據,以便在此通話期間僅在服務器端共享。 – katit 2011-04-15 17:22:27

+0

無Cookie會話如何? – Ocelot20 2011-04-15 17:41:25

回答

0

你問的是一般不好的做法。如果你在任何方法中需要一些數據,你應該將它們作爲參數或實例數據(你調用方法的對象)。

無論如何,如果你編寫REST服務,你最可能使用AspNetCompatibility模式。在這種情況下,您應該可以訪問HttpContext.Current.Items。如果你不使用AspNetCompatibility模式,你可以創建你的own extension for OperationContext

0

使用數據庫作爲存儲「包」。

任何其他類型的存儲數據(文件?)的全局位置都會執行,但是在多線程嘗試同時訪問此資源時要注意鎖定。