我有一个通过wsDualHttpBinding托管的回调服务。我想添加一个客户端,它将轮询数据而不是接收回调(将是一个使用wince进行演示的移动设备)。我很好奇最好的办法是什么?您无法使用NetCFSvcUtil创建一个客户端代理,该服务使用wsDualHttpBinding托管的服务(我理解这一点),但您无法通过basicHttpBinding托管回调服务。我真的需要托管在basicaHttpBinding上的相同服务(客户端将轮询数据)和wsDualHttpBinding(回调将通知客户端的数据)。有关处理此问题的最佳方法的任何想法,而不创建两个单独的服务来托管相同的数据?
答案 0 :(得分:2)
托管相同数据的两个独立服务是什么意思?您是否希望共享相同的服务实例来处理wsDualHttpBinding和basicHttpBinding请求?
您当前的问题是双工通信的服务接口不能用于basicHttpBinding。您必须创建第二个服务合同并在同一服务中实现它。在这种情况下,您可以为服务公开两个端点:一个具有WSDualHttpBinding的双工,一个具有BasicHttpBinding。端点必须具有不同的相对地址。从客户端的角度来看,这些端点是单独的服务 - 每个端点都需要单独的客户端代理。因此,除非您的服务是单例,否则您将为每个客户端代理提供新的服务实例。新服务实例意味着没有数据共享。
Thera是修改此行为的一些可能性,但它意味着替换实例提供程序。