WCF小结

1.WCF和之前通信技术的比较

WCF将现有的所有分布式技术统一起来,提供一个统一的应用编程接口。

Remoting不能提供跨平台的支持,仅仅提供服务端和客户端均处于.NET平台下的通信。

为了实现对跨平台的支持,微软在ASP.NET平台上开发出了Web服务。

消息队列,对离线通信方式的支持(当网络无法到达,消息可暂存于本地的消息队列中)

 

2.服务端配置

先定义服务契约(应用ServiceContractAttribute特性的接口)

创建实现契约的服务

通过EndPoint(Address,Binding,Contract)封装了通信所需要的多有必要信息。

通过特殊的服务行为ServiceMetadataBehavior发布WCF的元数据,客户端通过该服务地址获取WCF服务元数据,从而建立服务的代理类。

同时,WCF服务通过寄宿开启一个进程,宿主使用System.ServiceModel.ServiceHost对象完成对WCF服务的启动。

服务端配置结构如下:

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
           包含元数据发布地址
      </serviceBehaviors>
    </behaviors>
    <services>
           具体的服务设置,包含对endpoint的定义
    </services>
  </system.serviceModel>
</configuration>

//服务端伪码

try

{

    host = new ServiceHost();

    host.opened += fun();

    host.open();

}

catch

{

    输出提示“端口可能被占用”

}

 

3.客户端配置

添加服务引用,通过元数据地址,获取服务元数据,从而自动生成服务代理相关代码和相应的配置。

使用 服务名+Client 的类名(服务代理类),完成客户端对服务的调用。

客户端配置结构如下:

<configuration>
  <system.serviceModel>
    <bindings>
      自动生成的绑定信息
    </bindings>
    <client>
      自动生成的客户端信息,包含endpoint
    </client>
  </system.serviceModel>
</configuration>

//客户端伪码

try

{

    client.cmd();

    client.close();

}

catch

{

    client.abort();

}

 

4. binding对应不同的通信方案

binding实现了通信的所用细节并且还有对消息进行的相应处理(如传输安全,可靠消息传输,事务等)。

WCF预定了一系列系统绑定,如BasicHttpBinding,WSHttpBinding,WS2007HttpBinding,WSDualHttpBinding,NetTcpBinding,NetNamedPipeBinding和NetMsmqBinding等。

其中以Net为前缀的局限于.NET平台使用(WCF客户端和WCF服务直接进行通信),通信场景主要针对区域网内部。

NetTcpBinding,NetNamedPipeBinding和NetMsmqBinding分别采用TCP,命名管道(Named Pipes)和消息队列(MSMQ)作为底层的传输方式。

其中NetNamedPipeBinding仅限于同台机器上的跨进程通信(Inter-Process Communication,IPC)

以WS为前缀的WSHttpBinding,WS2007HttpBinding实现跨平台支持。

WSDualHttpBinding实现了基于HTTP的双向通信,使服务端回调客户端成为可能。

WCF设置BasicHttpBinding的主要目的在于与之前的.asmx Web服务进行互操作。

转载于:https://www.cnblogs.com/LionX/archive/2013/03/27/2985617.html

英飞凌AURIX 2G 系列MCU关于外设模块EVADC的实现原理及对应MCAL(EB Tresos)配置项详细讲解 本文章讲述了英飞凌AURIX 2G系列MCU关于外设模块EVADC的实现原理及对应MCAL配置工具(EB)的配置项。 阅读详情

相关推荐

从零到自动化:用Python脚本搞定华为CE12800的NETCONF初始配置(含完整代码)

本文详细介绍了如何使用Python脚本实现华为CE12800交换机的NETCONF初始配置自动化。从环境准备、脚本架构设计到SSH连接与NETCONF配置实战,提供了完整的代码示例和错误处理建议,帮助运维工程师高效完成网络设备自动化配置,提升工作效率。

weixin_42525551的博客 368

关于WCF的一点小结

WCF核心技术》笔记WCF的重要性:全球分布式网络的核心是服务,在windows平台上,WCF是提供和使用服务最简单的方式(屏蔽了负责的底层通信协议)。契约:服务契约:同步请求-响应操作、异步请求-响应操作、单向操作、双工操作;数据契约;消息契约小结--WCF非常多地利用SOAP标准来进行契约定义,其中特别突出的是使用WSDL来描述服务端点,及使用XSD来描述数据。WSDL中定义的服

Bone2的专栏 457

Grafana企业版vs开源版:从安装到插件管理的完整对比实测(含离线部署技巧)

本文深入对比Grafana企业版与开源版在安装流程、插件管理和功能限制等方面的差异,特别针对离线部署场景提供实用技巧。通过实测数据源支持、权限管理等核心功能,帮助企业用户做出明智选择,同时详细介绍离线安装和插件签名验证等关键操作。

weixin_29313817的博客 77

WCF 小结

今天学习的效率太低了。也可能是还没有从节日中走出来~~~    明天要加大学习力度了。      下周还要实现一个关于Silverlight的demo,WCF的学习可能要放一放了。      哎,谁让公司花钱养着咱呢!      闲话少叙,总结。      WCF分为四步:1、创建契约(创建接口)   2、实现契约(实现接口)   3、对契约服务进行寄宿   4、客户端调用服务

xiangguo886的专栏 332

PHP调用WCF小结

新工作第三周,做了3年多的.Net,突然急转弯做PHP,漂移过弯,速度180迈 由于数据的整合,在项目中不得不使用PHP调用WCF 一头的雾水,网上相关的资料少又少,在phpChina发个帖子,还没有人回,看来博客园才是永远的家 感谢dudu大神的不厌其烦的回复帮助,Thanks ==========以下是正文=============== 使用PHP调用WCF非常简单,所有的过程,只需...

weixin_30776863的博客 117

php 调用wcf 服务,PHP调用WCF小结

标签:新工作第三周,做了3年多的.Net,突然急转弯做PHP,漂移过弯,速度180迈由于数据的整合,在项目中不得不使用PHP调用WCF一头的雾水,网上相关的资料少又少,在phpChina发个帖子,还没有人回,看来博客园才是永远的家感谢dudu大神的不厌其烦的回复帮助,Thanks==========以下是正文===============使用PHP调用WCF非常简单,所有的过程,只需要两个字,仔细...

weixin_42390234的博客 259

WCF再学习小结

http://www.cnblogs.com/jillzhang/archive/2010/04/04/1704388.html http://leelei.blog.51cto.com/856755/876710 http://www.cnblogs.com/wlflovenet/archive/2011/10/28/WCFREST.html WCF学习笔记(5)——wcf序列化List&...

weixin_30851409的博客 125

wcf研究小结

 1、生成证书(目前为可用语句,具体参数还需要细细研究,这里面很深啊~)makecert -r -pe -n CN="MyWebServer" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 

翔的杂谈 549

WCF开发小结

1.在一个业务中,要实现更新的功能。开始已经定义并实现了Update(对象),后来增加需求,实现Update(IList<对象>).平时我们Update方法重载就可以了。不过在WCF中,服务契约是不能方法名重名了。于是Update(IList<对象>)更名为Save(Ilist<对象>)后,服务就启动正常了。2.在配置主机服务的时候,感觉配置很为很是麻...

weixin_30897079的博客 69

WCF 学习小结

以前学习过,但没有写什么总结,时间有限,只对今天的成果做下总结吧!     WCF起到的作用: 1 定位一个服务的位置; 2 提供寻址的辅助信息 3 标识服务的真实身份    WCF指定地址:                           1 通过代码方式指定地址 using (ServiceHost host = new ServiceHost(typeof(Calc

xiangguo886的专栏 353

Silverlight WCF 初尝小结

一年多的时间一直在等待Silverlight的稳定版本,但是从1.0 2.0 到现在的3.0BETA 一直吸引着我,于是终于按奈不住,一窥了Silverlight的魅力。 Silverlight是什么?怎么说呢?也许开发过WPF的人会有比较透彻的理解。Silverlight就像WPF提炼出来运用到WEB上的插件。界面的开发,程序部分的开发都集成了WPF的那一套,不过,既然是应用到WEB上的

ZetaChow 7884

[项目基础]WCF初识小结

一、基本内容     Windows通信基础(Windows Communication Foundation,WCF)是基于windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。     思想发展:面向过程——》面向对象——》面向服务 二、契约(协定)     1、分类:         服务契约(Service Contrac

一直在奋起,一直在路上 1237

WCF配置小结

一.基于命名管道的内部进程通信 1.宿主程序App.config 命名空间:DMBQWCF,具体的服务类:Service1 <endpoint address="net.pipe://localhost/" binding="netNamedPipeBinding" bindingConfiguration="" name="节点1

lnc2003的专栏 488

小结今天 Silverlight + WCF 收获

今天第一次接触 Silverlight WCF 学到的还不少,小结一下。 开刀的对象是 jacob 的 jacAD http://blog.csdn.net/jacle169/archive/2008/11/18/3322753.aspx 下载下来第一事件当然照着他的部署方法来做     附加数据库    修改数据库连接    部署 jacService 到 I

サ繌н筻刂挭 的 专栏 606

WCF使用问题小结

1、“套接字终止的问题”:必然是连接问题,但是引发的情况很多,并且提示就这么一个,很模糊   a、WCF调用之后连接是要关闭的client.Close(),该方法是很有必要的,否则,每次调用方法就会新建一个连接,当TCP连接过多的时候就可能发生这个错误;这个close其实并非真正的关闭连接,会闲置下来,如果该应用继续调用之前的服务,还会使用这个链接。注意关闭方法不用使用异步关闭,否则会引发其他问...

weixin_30824599的博客 302

wcf简单使用小结

一、创建一个服务契约(即填写一些接口,不过要记得【ServiceContract】【OperationContract】)二、创建一个服务来实现这个契约三、通过自我寄宿的方式寄宿服务,在控制台应用程序的配置文件中填写 在宿主中还要打开服务ServiceHost host1 = new ServiceHo

凝静&物语 430

【Windows】win10网络重置,网络什么都没了,网络设备管理器空的解决方案,可让ai参考

网络重置修复方法

Freesia_2350的博客 385

A/D 转换模块电路AD9288测试电路原理图-电路方案

此电路非原创,转自edmondchao123,感谢分享!!!我只是将图片改成了电路图,方便使用,本电路用于示波器前端采样,非常详细,据原作者说,可以采集的信号频率可达200M,ADC采用9288BZT100,A/D 转换模块电路AD9288是采用了并行双通道独立 8 位、 高速采样 (100MHZ) 的 A/D 器件,速度快,价格相对便宜。需要的小伙伴快来下载吧!

vc网吧锁屏_和万象网管软件效果一样.rar

visual c++锁屏[禁止操作]_和万象网管软件效果一样.rar

上一篇: 多线程和异步模式
aixiezao5463
博客等级 码龄10年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值