首页 新闻 搜索 专区 学院

wcf 双工调用????

0
[已解决问题] 解决于 2012-07-14 16:57

想试一下wcf的双工然后步骤大概是这样的,JQuery调用webservice()的

GetMSg()方法(webservice有wcf要用的回调函数GetMsgResult())  ,wcf服务端那边也进去了 ,但是为什么以调用完服务端 的代码 整个网页就自动关闭了?????  大概代码有下面两部分
 1     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 2     [System.ComponentModel.ToolboxItem(false)]
 3     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
 4     [System.Web.Script.Services.ScriptService]
 5     public class ClientUtils : System.Web.Services.WebService
 6     {
 7         [WebMethod(EnableSession = true)]
 8         public void GetMSg()
 9         {
10             //do something
11         }
12     }
13 
14     public class CalculateCallback : IOMSServiceCallback
15     {
16         public void GetMsgResult()
17         {
18             string a = "2";
19         }
20     }
服务端:
1
public void GetMsgDialog() 2 { 3 ICallback callback = OperationContext.Current.GetCallbackChannel<ICallback>(); 4 callback.GetMsgResult(); 5 }

 

  

koi的主页 koi | 初学一级 | 园豆:2
提问于:2012-07-05 17:21
< >
分享
最佳答案
0

双工只能应用与 tcp 或 dualhttp 绑定,而后者实际上是客户端也开一个http端口监听服务器发送来的消息。

网页或js,要想实现服务器推送模式,可以采用Comet方式或使用websocket.

奖励园豆:5
Launcher | 高人七级 |园豆:45045 | 2012-07-05 17:56

客户端也开一个http端口监听服务器发送来的消息, 那网页不能是这个客户端吗?

koi | 园豆:2 (初学一级) | 2012-07-06 09:27

@koi: 网页不能,一是有安全限制,另外,你不能保证所有客户机都具有公网IP,绝大多数客户机是隐藏在路由器后面的,只具有内网IP。

Launcher | 园豆:45045 (高人七级) | 2012-07-06 10:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册