读书笔记摘要-标准绑定介绍

1.基于各种传输协议:HTTP、TCP、UDP、P2P、IPC和MSMQ等,编码器:二进制编码、MTOM等编码方式加上安全策略和会话设置等组合,有些不可以运行,运行时才会发现所以提出绑定的概念。

绑定:定制好的通道栈,包含协议通道、传输通道和编码器。一个绑定集成了通信模式、可靠性、安全性、事务传播和互操作性等。

根据需要可自定义全新的绑定,也可根据标准绑定修改达到目的。标准绑定列表见下图:

2、绑定方式:在代码中设置绑定或者带配置文件中设置绑定[推荐:适应环境容易更改,无需编译]。示例:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <!--允许调试-->
    <compilation debug="true"></compilation>
  </system.web>
<system.serviceModel>
  <services>
    <service  name="HelloWorldService.Service">
      <!--对地址、绑定、契约属性赋值-->
      <endpoint address="HelloWorld" binding="netNamedPipeBinding" contract="HelloWorldService.IService"></endpoint>
    </service>
  </services>
</system.serviceModel>
</configuration>

  

代码绑定:更安全,但缺乏灵活性

    public class UserClient
    {
        static void Main(string[] args)
        {
            //构造绑定
            NetNamedPipeBinding binding = new NetNamedPipeBinding();
            //构造终结点
            EndpointAddress address = new EndpointAddress(new Uri("net.pipe://localhost:/HelloWorld"));
            using (HelloWorldProxy proxy=new HelloWorldProxy(binding,address))
            {
                Console.WriteLine(proxy.HelloWorld("WCF"));//利用代理调用服务
                Console.Read();
            }
        }

    }
       

3、绑定的选择:根据消息的可靠性、传输模式是否跨进程、主机、网络,传输模式的支持、安全性、性能等多方面考虑,本质是其网络协议和编码器的约束。

 

备注:可交互性是指与非WCF的服务或者客户端进行交互。

在上面图标中以net开头的绑定名称都是不可交互的,其他则是可交互的。

通常情况下使用IPC的绑定性能优于TCP的绑定,使用TCP的绑定又优于HTTP的绑定。使用WCF优化的绑定要优于非WCF系统交互的绑定。

 

posted @ 2020-04-05 22:44  objnet  阅读(200)  评论(0编辑  收藏  举报