【问题标题】:WCF & ASP.NET: Duplex Support using AJAXWCF 和 ASP.NET:使用 AJAX 的双工支持
【发布时间】:2023-03-25 21:27:01
【问题描述】:

我知道 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 App 在同一台机器上运行。

【问题讨论】:

    标签: ajax wcf duplex


    【解决方案1】:

    我在互联网上找不到任何地方 甚至有人问是否双工 以某种方式支持 ajax 调用。 也许是我无能为力的原因 在这上面找到任何东西是因为我是 完全误解了一些关键 提出问题的 WCF 概念 最愚蠢的问题...

    也许并不愚蠢,因为我认为你不理解的是 AJAX,而不是 WCF。

    在 AJAX 中使用双工合同没有任何意义。双工合约必须期望服务器随时调用合约操作。例如,它不像发布/订阅或请求响应,在消息开始到达之前客户端的操作是必要的。使用双工合约,消息可以随时到达。

    谁会听他们的?不是浏览器。如果浏览器要对来自某个远程机器的未经请求的消息做出反应,然后运行代码 - 好吧,这听起来很像病毒的定义,不是吗?

    我认为在很长一段时间内你都不会在 JavaScript 中找到对双工合同的支持。

    【讨论】:

      猜你喜欢
      • 2016-04-27
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      相关资源
      最近更新 更多