2010-03-16 64 views
2

我有兩個配置了ASP.NET兼容模式的WCF服務,以允許它們使用ASP.NET會話狀態。問題如下:在兩個WCF不同服務之間共享ASP.NET會話狀態

1.-到第一服務的調用存儲在ASP.NET會話狀態的值。 2.-第二次調用第一個服務可以讀取該值。

但是......

3.-到第二服務的調用無法讀取ASP.NET會話狀態值。

看來,ASP.NET會話狀態不是兩個WCF服務之間共享。

是否有共享兩個WCF服務之間ASP.NET會話狀態的方法嗎?

回答

1

如果2個服務共享數據庫,您可以在那裏實現會話存儲。您將能夠在不同的服務或應用程序之間共享信息。

+0

非常感謝。 我該怎麼做? 問題是每個調用者對的會話狀態都不相同。 例如,有兩臺消費機器運行一個調用兩個服務的程序。每個消費者機器的會話狀態必須不同。 – Moreno 2010-03-17 07:58:45

+0

其基本思想是在數據庫中存儲任何需要在服務間共享的信息。假設數據庫是所有人共有的存儲資源。 您應該創建一個表SharedSession或類似的東西,並將其用於需要共享的寫入/讀取會話狀態。 – 2010-03-17 15:53:07

0

兩個呼叫會產生兩個不同的會話,所以答案是有點沒有。您可能需要找到一些自定義的方式來處理這個問題。

一般情況下,服務調用應該是原子彈,不應該依靠這樣的會議 - 如果你可以讓這個會話不使用的話,那麼這是最好的解決方案。

+0

謝謝你的回覆。 該方案是: 我們有不同的服務:客戶關係管理,財務,製造......(全部使用相同的數據庫)。 要使用這些服務,客戶端必須在系統中登錄才能驗證憑證並提取諸如語言,運行時參數,授權規則等信息;該信息存儲在會話狀態(登錄過程可能很慢)。 這個想法是提供另一種服務來公開LogIn操作,所以其他服務不會被強制每次登錄。 我會欣賞任何想法。比你提前。 – Moreno 2010-03-17 07:52:57

相關問題