2010-09-30 55 views

回答

2

目前尚不清楚你的會話意味着什麼。 WCF支持四種類型的會話:

  • 傳輸會話 - 用於維護服務器和客戶端之間會話的傳輸協議。例如:的net.tcp,Net.Pipe
  • 可靠的會話 - 用於可靠的支持,以便在交付不可靠信道,如果客戶端和服務器都在運行
  • 安全會議 - 客戶端只被認證爲第一個呼叫,隨後呼叫通過會話令牌進行認證。這個會話也被稱爲安全上下文。
  • 應用程序會話 - 這對於IsInitiating和IsTerminating操作契約和PerSession實例的參數有意義。只有在使用任何前面的會話時,才能使用此會話=在BasicHttpBinding中不能使用它,因爲它不支持傳輸,可靠和安全會話。

所有這些會話都與單個客戶端代理和單個服務實例之間的通信有關。沒有提供任何其他的東西。而且沒有特殊的「會話」對象。

那麼你究竟想達到什麼目的?你打算取代使用ASP.NET會話的ASMX服務嗎?在這種情況下,請檢查sample

編輯:

關於後續調用多個服務從第一服務接收單編號和重複使用此標識的想法應該被稱爲相關性研究(一個大的活動/交易)或聯盟(安全相關的)不會話。

+0

我的問題是有點笨..我以其他方式解決問題。但是你的回答對我來說非常有趣和有用。 – RredCat 2010-11-02 15:31:57

0

由於marc_s說你不能共享會話。

但是你可以做的是在你的WCF調用中傳遞會話ID作爲參數,這樣你就可以知道誰正在進行調用。

確保您在這些呼叫上使用加密。

0

推薦的方法是通過手動維護呼叫之間的會話狀態。您可以按照自己的邏輯生成會話ID,並在每次調用時將會話信息加載/保存到數據庫中。

通過這樣做,你會支持的方式會議,這將使:

  • 負載均衡
  • 會話共享
  • 故障切換
相關問題