2013-02-26 52 views
4

背景:爲什麼WCF在使用安全性時會對通道造成故障?

我注意到,在我的WCF服務,當我拋出一個異常(一個普通的老除外),客戶通道進入故障狀態,並具有中止,之前我重新創建可以在該頻道上再次撥打電話。沒關係。這就是它的目的。我知道了。所以我只需調用abort()並重新創建,如果我需要再次調用。

但是,當我使用啓用了安全性的綁定時,客戶端通道的錯誤纔會發生。當我使用basicHttpBinding時,我可以在客戶端上得到一個異常,然後繼續使用ServiceClient對象而不告訴我它處於「故障狀態」。

此外,當我關閉wsHttpBinding或netTcpBinding上的安全性時,可以在異常後重新使用通道。

問:

什麼是關於一個綁定的安全性,它使故障通道,它是不可用的?

回答

1

這是因爲使用安全性,您正在設置安全的會話。當您退出會話時,頻道進入故障狀態,您必須中止它並創建一個新頻道。使用BasicHttpBinding,沒有會話正在進行。