【发布时间】:2012-02-25 21:09:22
【问题描述】:
我不能否认双工异步调用的性能优势,但有些事情让我感到警惕。
我担心的是,给定一个实例化的客户端对象,WCF 是否能够判断哪个特定的客户端服务实例将接收回调参数?
谁能告诉我这是否是个好主意?如果不是为什么不呢?
new DuplexChannelFactory<IServerWithCallback>(
new ClientService(),
new NetTcpBinding(),
new EndpointAddress("net.tcp://localhost:1234/"+Guid.NewGuid()))
-
如果上面的虚拟路径是保留的,如何丢弃它。我希望客户服务的生命周期相当短。 IE 发出请求并接收响应,完成接收后将其杀死。缩短客户端服务生命周期与将其池化并使其保持更长的生命周期相比,性能损失有多严重。
这个想法是为了避免超时问题。完成接收、发送后,尽快处理。按照惯例 - 不能传递客户端服务。如果您需要信息,请创建一个新的,简单的 - 就像 EF/L2S 等。
如何从 WCF 服务本身内部终止与客户端的会话。 IE。我不希望客户端结束会话 - 我知道我可以相应地装饰我的操作,但我希望服务在满足某些条件时以编程方式自行终止。
我可以附加端口并相应地转发以解决任何防火墙问题,但我担心的是客户端是否位于负载平衡器后面。服务如何知道要调用哪个特定服务器?
【问题讨论】:
标签: c# .net wcf architecture duplex