WCF配置多个终节点

配置多个终节点的意义(自己理解):
一个服务可以有多个终节点,网上也经常有人说终节点才是服务的真正的接口,的确如此,当我们为一个服务配置多个终节点时,就表明这个服务可以被以不同的方式访问(不同的绑定等等),我们配置完服务端后,在客户端引用这个服务(引用服务只是为了让你看明白,它生成了什么东西),你会发现客户端生成了两个endpoint。我们再来讲一下,客户端是怎么去调用的,客户端调用服务时,通常会传一个客户端的endpoint的一个name:
ServiceReference1.Service1Client c = new ServiceReference1.Service1Client("WSHttpBinding_IService1");
这样呢,我们根据这个name的endpoint就可以找到它调用的是服务端的哪个服务。

后面我会再讲一下,一个服务配置多个基址(http,tcp)的情况。

服务端配置

<?xml version= " 1.0 " encoding= " utf-8 "?>
<configuration>

  <system.web>
    <compilation debug= " true " targetFramework= " 4.0 " />
  </system.web>  

    <system.serviceModel>
      <bindings>
        <wsHttpBinding>
          <binding name= " bingding_WS ">
            <security mode= " None " />
          </binding>
          <binding name= " bingding_WS1 ">
            <security mode= " None " />
          </binding>
        </wsHttpBinding>
      </bindings>
      
      <services>
        <service behaviorConfiguration= " MyBehavior "
          name= " WcfService1.Service1 ">
          <host>
            <baseAddresses>
              <add baseAddress= " http://localhost:8001/ "/>
            </baseAddresses>
          </host>
          <endpoint address= " HelloService " binding= " wsHttpBinding " bindingConfiguration= " bingding_WS " contract= " WcfService1.IService1 "></endpoint>
          <endpoint address= " HelloService1 " binding= " wsHttpBinding " bindingConfiguration= " bingding_WS " contract= " WcfService1.IService1 "></endpoint>          
          <endpoint address= " mex " binding= " mexHttpBinding " contract= " IMetadataExchange " />
        </service>
      </services>
      <behaviors>
        <serviceBehaviors>
          <behavior name= " MyBehavior ">
            <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为  false 并删除上面的元数据终结点-->
            <serviceMetadata httpGetEnabled= " true " httpGetUrl= " false " />
            <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为  true。在部署前设置为  false 以避免泄漏异常信息-->
            <serviceDebug includeExceptionDetailInFaults= " false "/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
    </system.serviceModel>

 <system.webServer>
    <modules runAllManagedModulesForAllRequests= " true "/>
  </system.webServer>
  
</configuration>

 

客户端配置

<?xml version= " 1.0 " encoding= " utf-8 " ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name= " WSHttpBinding_IService1 ">
                    <security mode= " None " />
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address= " http://localhost:8001/HelloService " binding= " wsHttpBinding "
                bindingConfiguration= " WSHttpBinding_IService1 " contract= " ServiceReference1.IService1 "
                name= " WSHttpBinding_IService1 " />
            <endpoint address= " http://localhost:8001/HelloService1 " binding= " wsHttpBinding "
                bindingConfiguration= " WSHttpBinding_IService1 " contract= " ServiceReference1.IService1 "
                name= " WSHttpBinding_IService11 " />
        </client>
    </system.serviceModel>

</configuration> 

 

点我下载源码 (WCF一个服务配置多个终节点.rar)系统有问题,后面上传。

转载于:https://www.cnblogs.com/pnljs/p/3540144.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值