Tag: 双工

“OperationContext.Current.GetCallbackChannel”实际上做了什么?

OperationContext.Current.GetCallbackChannel实际上做了什么? 它如何识别每个客户? 我在WCF服务中遇到问题。 如果有两个以上的用户连接到该服务,那么我从服务发送到客户端的所有“有趣的更改”将转到第二个加入的用户。 例如,如果我通过回调将更改发送到C和D,则A,B,C,D加入服务,它将转到B. 有任何想法吗? 细节 : 客户端:ASP.NET Web应用程序 绑定:netTCPBinding UPDATE1 好的,我找到了问题的原因。 我在IIS中托管了asp.net客户端。 例如,客户端的URL是http:// url1 。 如果我在不同的机器中打开页面的多个实例并加入服务,则回调通道始终指向页面的第一个实例(我从不同的机器打开该站点)。 但如果我在IIS中的不同站点下托管asp.net客户端,则回调通道是唯一的。 有什么想法吗?

WCF Duplex客户端的最佳实践

我不能否认双工异步调用的性能优势,但有些事情让我感到谨慎。 我担心的是,给定一个客户端对象实例化,WCF能否告诉哪个特定的客户端服务实例将收到回调参数? 谁能告诉我这是不是一个好主意? 如果不是为什么不呢? new DuplexChannelFactory( new ClientService(), new NetTcpBinding(), new EndpointAddress(“net.tcp://localhost:1234/”+Guid.NewGuid())) 如果保留上面的虚拟路径,则如何将其丢弃。 我希望客户端服务的生命周期相当短。 IE发出请求并收到响应,完成接收后,将其杀死。 将客户端服务生命周期缩短而不是将其整合并使其保持更长时间的性能损失有多糟糕。 这个想法是为了避免超时问题。 完成接收,发送,尽快处理。 按照惯例 – 无法传递客户服务。 如果您需要信息,请创建一个新的,简单的 – 就像EF / L2S等。 从WCF服务本身内部,如何终止与客户端的会话。 即。 我不希望客户端结束会话 – 我知道我可以相应地修饰我的操作,但我希望服务在满足某些条件时以编程方式终止自身。 我可以相应地粘贴端口并转发以解决任何防火墙问题,但我担心的是客户端是否坐在负载均衡器后面。 服务如何知道要调用哪个特定服务器?