4

背景:

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

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

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

问题:

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

4

1 回答 1

1

这是因为使用 Security,您正在设置一个安全会话。当您退出该会话时,通道将进入故障状态,您必须中止它并创建一个新状态。使用 BasicHttpBinding,不会进行任何会话。

于 2013-03-19T21:01:09.980 回答