Silverlight+WCF 新手实例 象棋 WCF通讯方式(十六)-阿里云开发者社区

开发者社区> 泡泡浅眠> 正文

Silverlight+WCF 新手实例 象棋 WCF通讯方式(十六)

简介:
+关注继续查看

本节小讲通讯方式,上两节的我们讲的BasicHttpBinding,是其中的一种基础的通讯方式,

还有一种双向通讯的,专业词汇叫“双工通讯”,不过双工通讯一听起来太以理解,

就好像那个特性“契约”,一听就感觉像卖身契一样让人觉得匪夷所思。

下面全用双向代替双工说话了。

说双向通讯好理解了吧,再简单说就是:客户端可以调用服务端的方法;服务端也可以调用客户端的方法。

对于通讯方式,上两节,我们都是用:BasicHttpBinding,除了这个,还说过还有N种的。

 

为了说明有多少种,我们这里顺便提一个工具,在以下路径:

开始->所有程序->Microsoft Visual Studio 2010->Microsoft Windows SDK Tools->服务配置编辑器

我们可以通过它来打开WCF相关的config文件。不过呢,每次指定路径打开,都是很烦的,

我们希望通过右键点击xxx.config之类的,再用这工具打开它。

OK,我们先Copy一下服务配置编辑器的路径,这个待会要粘贴,看以下图:

我们点击属性,并从弹出的快捷方式中复制Exe的路径:

复制好路径后,我们回到项目中,这里就以上个示例World为例了,对着ServiceReferences.ClientConfig右键,

当然你也可以选择web.config,然后选择打开方式:

出现弹出窗口后,选择添加,把路径粘贴进去,并起一个好名称,如下图:

点确定之后,打开方式就多了一项了,当然,你也可以把它设置为默认打开方式。

OK,现在我们通过刚添加的那项打开配置文件:

看到终结点那项没,用的就是BasicHttpBinding通讯,我们点击下拉,看看一共有多少个通讯方式:

数了一下,竟然有19个之多。根据不同的场合,使用不同通讯方式进行通讯,

简单的说就是:WCF不仅可以放在我们的web中通过IIS来访问,也可以寄放在winform程序中通过tcp方式进行通讯了。

当然还有N(19)种这么多,应用场合是五花八门了。

通过上面的工具,你可以轻松点的配置webconfig相关文件,不用看那xml还得一字一字的敲打了。

 

关于双向通讯,BasicHttpBinding能做到么?

我尝试弄了一下,编绎是通过了,不过在更新服务引用的时候,出现以下错误:

按照上面的提示,是究竟不支持,还是配置的不正确,这个暂时不得而知。

 

那我们是通过什么来进行双向通讯的呢?

wsDualHttpBinding这个,需要配置两个通讯端口,一个是服务端到客户端的,一个是客户端到服务端的。

关于这个,在WCF揭密这本书中,其中的那个发布/订阅示例,用的就这个:

CSDN里有一个免积分下点的[搜索名称后,鄱到第4页,过些时间又跑第5第6页也说不定了]:下载列表 

 

关于双向通讯,官方提供了N种可以双向的,不过今天要用到的,

是pollingDuplexHttpBinding,一个扩展的轮询机制的双向通讯,当你也可以尝试用上面的通讯方式去试一试。

既然是扩展,就说明默认没有,那我们首先就要添加扩展了,用的是默认官方是提供的DLL,就在我们安装的Silverlight4的目录里:

正常路径为:C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries\Server\System.ServiceModel.PollingDuplex.dll

 

 OK,下一节,我们同样新建一个项目来实现双向通讯。

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2010/07/13/1776285.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9488 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10842 0
一起谈.NET技术,Silverlight + RIA Service的SUID的实例
  1、准备工作   新建一个Silverlight Business Application,首先修改web.config,他自动生成的配置比较省略,我手动加入membership,role,profile的配置,我是ASP.NET MVC的项目中拷贝过来,直接用他的配置也可以,不过手动配置一下连接字符串LocalSqlServer,不然不能运行。
779 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13168 0
+关注
2248
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载