2013-02-26 30 views
4

背景:为什么WCF在使用安全性时会对通道造成故障?

我注意到,在我的WCF服务,当我抛出一个异常(一个普通的老除外),客户通道进入故障状态,并具有中止,之前我重新创建可以在该频道上再次拨打电话。没关系。这就是它的目的。我知道了。所以我只需调用abort()并重新创建,如果我需要再次调用。

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

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

问:

什么是关于一个绑定的安全性,它使故障通道,它是不可用的?

回答

1

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