0
我有一個名爲「Login」的操作契約,它有IsInitiating = true標誌。Wcf如何在OperationContract中終止會話[isInitiating = true]
客戶端發送它的憑據到這個函數,我需要檢查憑據並返回一個消息給客戶端,如「您的憑據不正確!」我必須立即關閉會議。我怎樣才能做到這一點?
我有一個名爲「Login」的操作契約,它有IsInitiating = true標誌。Wcf如何在OperationContract中終止會話[isInitiating = true]
客戶端發送它的憑據到這個函數,我需要檢查憑據並返回一個消息給客戶端,如「您的憑據不正確!」我必須立即關閉會議。我怎樣才能做到這一點?
在同一操作中不可能這樣做,因爲您不能同時使用IsInitiating=true
和IsTerminating=true
。
的MSDN展示瞭如何實現這兩種:MSDN
一個可能的解決方案是拋出一個異常,而不是返回的消息。然後,您可以在客戶端處理此異常並關閉該通道。
這它是如何工作的「幕後」爲MSDN證明:
在客戶端應用程序,IsTerminating的值設置爲true指示WCF的回覆到達後關閉通道。
有一個關於如何結束在服務器端的會話,可以幫助你另一個問題:end-a-wcf-session-from-the-server