如何终止WCF会话
本文关键字:WCF 会话 终止 何终止 | 更新日期: 2023-09-27 18:07:28
WCF会话由属性
发起[OperationContract(IsInitiating = true, IsTerminating = false)]
并以
结束[OperationContract(IsInitiating = false, IsTerminating = true)]
是否有一种基于某些条件终止当前WCF会话的方法?让我们验证凭据,否则不让会话启动。是否有一种方法可以做到这一点,而不会在启动会话的操作契约中抛出异常?
这是为了确保客户端在会话终止后不会进行额外的调用。可能是WCF中的限制,因为会话是客户端发起的。
是否有一种方法来终止当前的WCF会话基于一些条件?让我们验证凭据,否则不允许会话开始。是否有一种方法可以做到这一点而不抛出异常启动会话的操作契约。
基于你的代码isinitialization和istterminate,一旦方法被
调用,它会自动抛出一个异常给客户端isstarting = false, isterating = true
而不使用
调用方法isstarting = true, isterating = false
并且我不认为你可以在不抛出异常的情况下处理它,因为WCF在底层处理它。或者可能是他们的"我不知道"
你可以考虑一下我在下面写的一些信息
您没有提到您在服务中使用的消息传递类型。
- 如果你正在使用双工消息传递,你可以关闭/中止连接而不会向客户端抛出任何异常。
你实现了什么样的验证凭证机制?
- 如果您的凭据验证使用自定义UserNamePassword验证器,我不认为他们是一种不抛出异常而终止它的方法。
- 如果你使用证书和凭据,我认为你不需要终止会话,因为一旦身份验证不成功,它就会终止。
这是为了确保客户端不进行额外的调用一旦会话终止。可能是WCF的限制会话是客户端发起的。
- 如果你实现了正确的凭证验证,你就不需要担心"确保客户端不做额外的类…"因为根本没有启动会话。
关于在WCF中关闭连接的不同方法的附加信息