2011-05-12 58 views
0

我創建了一個WCF服務,它在IIS中託管它併爲它創建一個Web應用程序客戶端。如何在WCF WebApplication中維護會話和相同頻道

每件事情都很好。

問題是,當我在WCF服務中啓用會話時,所有必需的屬性都創建了一個問題。

我的服務有幾個功能。我想先執行的函數是我的登錄功能,所以我設置了IsInitiating = true。

和IsInitiating = false對所有其他功能。

現在從客戶端它工作正常,當我打電話登錄功能。但是當我嘗試在客戶端登錄時調用其他函數時,它會生成一個異常,因爲IsInitiating被設置爲fale,所以該函數XYZ不能被先調用;

我認爲這個問題是每當我的頁面重新發布到服務器上時,它就會創建一個新的wcf服務實例,與服務器建立新的會話。如何維護我的Web應用程序中所有事件的相同代理?

+0

你爲什麼要使用這樣的架構?這是一個不好的方法。 – 2011-05-12 11:36:13

回答

0

我有非常有趣的鏈接給你,這可能可以解決你的問題。 http://www.codeproject.com/KB/WCF/Sessions_in_WCF.aspx

+0

嘿丹尼斯,那麼這篇文章解釋了我也在其他論壇上閱讀過的相同的東西。我已經實現了它並且也被使用了。但我的問題是在客戶端。 我已經通過傳統方式解決了我的問題。我創建了一個代理並將其存儲在asp.net會話中。而我正在考慮另一種方法。我想創建一個代理,並且在每一次回傳中都有任何方法可以擁有相同的代理而不是會話? – 2011-05-12 12:03:33

+1

是的。只需緩存服務代理(客戶端),然後在想要進行服務操作調用時檢索它。如果您使用的是asp.net,可能將其存儲在會話或應用程序對象中? – 2011-05-12 14:00:43

+0

好的,謝謝你的時間。 – 2011-05-13 10:21:43