我知道 WSDualHttpBinding、NetTcpBinding 和 NetPeerTcpBinding 绑定都支持双工/回调服务操作。
我在互联网上找不到任何人甚至询问是否以某种方式支持 ajax 调用双工。也许我无法在这方面找到任何东西的原因是因为我完全误解了一些关键的 WCF 概念,这使得这个问题成为最愚蠢的问题......
我知道 webHttpBinding 绑定以及<enableWebScript/>
生成代理对象客户端所需的 js。
这是不可能的,因为双工服务需要托管该回调服务并且无法在客户端执行该操作吗?(如果这有意义..)
我的应用程序分层如下:
1. WebSite1 - 对 WebSite1.MyClientService 的 ajax 调用。
2. WebSite1.MyClientService - 引用 MyServiceProxies DLL 的 WCF 自托管服务。
3. MyServiceProxies DLL - 从 ClientBase 继承的自定义代理(用于代替“添加服务引用”自动生成的代理)。这只是将实际服务调用委托给 [MyService : IMyService at WinService WCF Host EXE] 处的 base.Channel.OperationName()。
4. WinService WCF Host EXE - 作为一个windows服务运行,作为一个单例,允许多线程调用。来自 WebSite1 的调用查询此单例所持有的内存值。这个单例最终将通过单独的数据层将所有保存在内存中的数据提交到数据库。
WinService 配置为通过 net.tcp 使用双工调用。WinService 将在与 WebSite1 IIS 应用程序相同的机器上运行。