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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WCF WebSocket是WCF 4.5中新增的一个功能,它支持在WCF中使用WebSocket协议进行通信。WebSocket是一种全双工通信协议,可以在客户端和服务器之间建立持久性的连接,实现实时的双向通信。\[1\] 然而,需要注意的是,WCF WebSocket只在Windows 8及以上的系统中支持,对于Windows 7等旧版本的系统则不支持。这是因为WCF WebSocket依赖于System.Net.WebSocket类,而该类也只在Windows 8及以上的系统中可用。\[2\] 在WCF中,可以使用NetHttpBinding和NetHttpsBinding这两个标准绑定来支持WebSocket传输。这两个绑定允许在标准的HTTP端口80和443上进行WebSocket通信,从而可以通过Web中介进行跨网络的通信。\[3\] 总结起来,WCF WebSocket是WCF 4.5中新增的功能,它支持使用WebSocket协议进行实时的双向通信。然而,需要注意的是,WCF WebSocket只在Windows 8及以上的系统中支持,并且可以使用NetHttpBinding和NetHttpsBinding这两个标准绑定来进行WebSocket通信。 #### 引用[.reference_title] - *1* *2* [在WCF中使用websocket](https://blog.csdn.net/weixin_34205826/article/details/85568070)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [WCF websocket](https://blog.csdn.net/weixin_30699741/article/details/96370576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值