使用安全性时,为什么WCF会对通道进行故障?

时间:2013-02-26 01:35:08

标签: wcf wcf-binding wcf-faults

背景:

我注意到在我的WCF服务中,当我抛出异常(一个普通的旧例外)时,客户端通道进入故障状态并且必须中止并重新创建才能在该通道上进行另一次调用。没关系。这就是它的意图。我知道了。所以我只需要调用abort()并重新创建,如果我需要再打一次电话。

但是,只有当我使用启用了安全性的绑定时,才会发生客户端通道的故障。当我使用basicHttpBinding时,我可以在客户端上获得异常,然后继续使用ServiceClient对象而不告诉我它处于“故障状态”。

另外,当我关闭wsHttpBinding或netTcpBinding的安全性时,我可以在异常后重新使用该频道。

问题:

绑定的安全性是什么导致它成为通道的错误,因此它无法使用?

1 个答案:

答案 0 :(得分:1)

这是因为在安全性方面,您正在设置安全的会话。当您退出该会话时,通道进入故障状态,您必须中止它并创建一个新的。使用BasicHttpBinding,没有进行会话。