zoukankan      html  css  js  c++  java
  • 配置服务绑定

    一.绑定的概念

    绑定中的信息可能非常基本,也可能非常复杂。 最基本的绑定仅指定必须用于连接到终结点的传输协议(如 HTTP)。 一般来说,绑定包含的有关如何连接到终结点的信息属于以下类别中的一种。

    协议

    确定要使用的安全机制:可靠消息传递功能或事务上下文流设置。

    编码

    确定消息编码(例如,文本或二进制)。

    传输

    确定要使用的基础传输协议(例如,TCP 或 HTTP)。

    二.在配置文件中配置绑定

    (1).首先我们需要定义一个服务协定ICalculator.cs

    代码
    [ServiceContract]
    public interface ICalculator
    {
       [OperationContract]
       
    double Add(double n1, double n2);
       [OperationContract]
       
    double Subtract(double n1, double n2);
       [OperationContract]
       
    double Multiply(double n1, double n2);
       [OperationContract]
       
    double Divide(double n1, double n2);
    }

    (2).建立协定的实现类,我的理解就是行为。

    代码
     public class CalculatorService : ICalculator
        {
            
    public double Add(double n1, double n2)
            {
                
    return n1 + n2;
            }
            
    public double Subtract(double n1, double n2)
            {
                
    return n1 - n2;
            }
            
    public double Multiply(double n1, double n2)
            {
                
    return n1 * n2;
            }
            
    public double Divide(double n1, double n2)
            {
                
    return n1 / n2;
            }
        }

    (3).现在我们的服务协定定义完了,下面就应该配置我们的服务.

    有两种方式

    (1)配置文件模式

    我们来认识下结构

    代码
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      
    <system.serviceModel>
        
        
    <services>
          
          
    <!--服务-->
          
    <!--name:命名空间+服务协定的实做类-->
          
    <service name="ConfigService.CalculatorService" >
            
    <!--
            终结点
            1.address 服务地址:http://localhost:8052/MyService
            2.binding 绑定:制定安全模式,传输模式
            3.contract服务协定:也就是公开我们服务所提供的方法
            4.bindingConfiguration:绑定配置文件:也就是说通过这个字段在配置里面找到当前终结点的传输方式
            
    -->
            
    <endpoint
                
    address="http://localhost:8052/MyService"
                binding
    ="wsHttpBinding"
                bindingConfiguration
    ="MyBinding"
                contract
    ="ConfigService.ICalculator" />
          
    </service>
          
        
    </services>
        
        
    <bindings>
          
    <!--绑定WebService基础Http绑定-->
          
    <wsHttpBinding>
            
    <!--name 属性是必须的,通过标记可以使得其他服务访问-->
            
    <binding name="MyBinding"
                     closeTimeout
    ="00:02:00"
                     openTimeout
    ="00:02:00">
            
    </binding>
          
    </wsHttpBinding>
        
    </bindings>
      
    </system.serviceModel>
    </configuration>

    (2)后台代码模式

    ServiceHost host = new ServiceHost(typeof(CalculatorService));
    host.AddServiceEndpoint(
    typeof(ICalculator), new BasicHttpBinding(), "http://localhost:8052/MyService");

    (3)还落下一个,至于缩主,大家就建立一个控制台程序就可以的.

  • 相关阅读:
    Spring.Net框架与WCF的集成(上)
    重入与回调并发(Reentrant & CallbackConcurrency )
    WCF中的异步实现
    WCF开发时如何选择正确的实例模式(InstanceMode)?
    WCF实例与并发
    WCF消息可靠性与有序传递
    WCF实际应用之IParameterInspector扩展
    WCF中几个基本知识点整理
    HTTP与Tcp协议下双工通信的差异
    细说WCF中的会话模式
  • 原文地址:https://www.cnblogs.com/tongly/p/1852302.html
Copyright © 2011-2022 走看看