WCF& ASP.NET:使用AJAX的双工支持

时间:2009-06-30 22:06:56

标签: ajax wcf duplex

我知道WSDualHttpBinding,NetTcpBinding和NetPeerTcpBinding绑定都支持双工/回调服务操作。

我无法在互联网上的任何地方找到任何人甚至询问双工是否以某种方式支持ajax调用。也许我无法在此找到任何内容的原因是因为我完全误解了一些关键的WCF概念,这使得这个问题成为最愚蠢的问题......

我知道webHttpBinding绑定和<enableWebScript/>一起打算代理对象客户端所需的js。

这是不可能的,因为双工服务需要托管回调服务而没有办法做客户端吗? (如果这是有道理的..)

我的应用分层如下:
1. WebSite1 - ajax调用WebSite1.MyClientService 2. WebSite1.MyClientService - 引用MyServiceProxies DLL的WCF自托管服务 3. MyServiceProxies DLL - 从ClientBase继承的自定义代理(用于代替“添加服务引用”自动生成的代理)。这只是将实际服务调用委托给[MyService:WinService WCF Host EXE上的IMyService]的base.Channel.OperationName()。
4. WinService WCF主机EXE - 作为单一服务器运行,作为单一服务器运行,允许多线程调用。来自WebSite1的调用查询此单例持有的内存中值。该单例最终将通过单独的数据层将内存中保存的所有数据提交到数据库。

WinService配置为通过net.tcp使用双工调用。 WinService将在与WebSite1 IIS App相同的机器上运行。

1 个答案:

答案 0 :(得分:2)

  

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

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

在AJAX中签订双工合同并没有多大意义。双工合同必须要求服务器随时调用合同操作。例如,它不像发布/订阅,或者请求响应,其中在消息开始到达之前客户端的操作是必要的。通过双面合同,消息可以随时到达。

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

我认为你不会在JavaScript中找到对双工合约的支持已经有一段时间了。