wcf - 我是否需要关闭和/或处置通过OperationContext.Current.GetCallbackChannel 获取的回调 channel ?

标签 wcf callback dispose

我正在使用OperationContext.Current.GetCallbackChannel 获取调用WCF 服务操作的客户端的 channel 。

我是否需要担心关闭/处置这些回调 channel ,或者这是由框架处理的?

最佳答案

好吧,我自己尝试了一下,结果发现,如果您关闭并处置回调 channel (在转换为 IClientChannel 后),整个服务 channel 将变得无用,并且在调用时会抛出 ProtocolException 并表示:

“此 channel 无法再用于发送消息,因为输出 session 由于服务器启动的关闭而自动关闭。通过将 DispatchRuntime.AutomaticInputSessionShutdown 设置为 false 来禁用自动关闭,或者考虑修改关闭协议(protocol)与远程服务器。”

我认为这是尝试关闭和处置回调 channel 的不受欢迎的后果或副作用,这意味着不应该这样做。

关于wcf - 我是否需要关闭和/或处置通过OperationContext.Current.GetCallbackChannel 获取的回调 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8165398/

相关文章:

WCF - 使用以下搜索条件无法找到 x.509 证书

java - Android 原生守护进程通过 JNI 调用 Java 方法

wpf - ViewModel 中 IDisposable 内存泄漏,为什么?

c# - 为什么这个重写的方法变灰了?

wcf - 如果 WCF 代理的方法不可见,它如何实现 ICommunicationObject?

c# - 我可以自动更改自动生成的 wcf 代理的名称吗?

javascript - 读取 URL 查询参数值 (Vue.js)

c++ - 为什么调用 GC.Collect 会加快速度

c# - 如何在 WCF 中使用自定义序列化或反序列化来强制对数据联系人的每个属性创建一个新实例?

node.js - Mongoose 在 Node 中的 "model.findById"之后做一些事情