繁体   English   中英

如何终止WCF会话

[英]how to terminate a wcf session

WCF会话由属性启动

[OperationContract(IsInitiating = true, IsTerminating = false)]

并终止于

[OperationContract(IsInitiating = false, IsTerminating = true)]

是否可以根据某种条件终止当前的WCF会话? 可以说验证凭证,否则将不允许会话开始。 有没有一种方法可以在不引发启动会话的操作契约中引发异常的情况下执行此操作。

这是为了确保会话终止后客户端不会再进行其他呼叫。 由于会话是客户端发起的,因此WCF可能存在限制。

是否可以根据某种条件终止当前的WCF会话? 可以说验证凭证,否则将不允许会话开始。 有没有一种方法可以在不引发启动会话的操作契约中引发异常的情况下执行此操作。

根据您的代码IsInitiating和Isterminate,一旦使用调用方法,它将自动向客户端抛出异常

IsInitiating = false,IsTerminate = true

而不用调用方法

IsInitiating = true,IsTerminate = false

而且我认为您不能在不引发异常的情况下进行处理,因为WCF会在后台对其进行处理。 或者可能是他们的“我不知道”

您可能会考虑以下我写的一些信息。

您没有提到服务中使用的消息类型。

  • 如果您正在使用双工消息传递,则可以关闭/中止连接,而不会向客户端抛出任何异常。

您实施了哪种验证凭证机制?

  • 如果您的凭据验证使用自定义的UserNamePassword验证器,我认为他们不是在不引发异常的情况下终止它的方法。
  • 如果您使用带有凭据的证书,那么我认为您不需要终止会话,因为一旦身份验证失败,会话便会终止。

这是为了确保会话终止后客户端不会再进行其他呼叫。 由于会话是客户端发起的,因此WCF可能存在限制。

  • 如果您对凭证进行了正确的验证,则无需担心“ 确保客户端不会进行额外的校准... ”,因为根本不会启动任何会话。

有关在WCF中关闭连接的不同方式的其他信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM