基础(暴露元数据交换节点)

1、原理

 WCF中的元数据是精确描述如何与服务通信的消息。客户端可以向一个运行的服务请求元数据来了解它们要求的终结点和消息格式。在设计时,客户端发送由WS-MetadataExchange 标准定义的消息并接收返回的WSDL。WSDL可以被客户端用来定义一个将要用来在运行时与服务通信的代理类和配置文件,默认情况下,WCF服务不暴露MEX终结点

2、代码申明

  ServiceHost serviceHost = new  ServiceHost( typeof (StockService), new  Uri( "http://localhost:8000/EssentialWCF" ));  
serviceHost.AddServiceEndpoint( typeof (IStockService), new  BasicHttpBinding(), "" );
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
 behavior.HttpGetEnabled = true;
 serviceHost.Description.Behaviors.Add(behavior);
  serviceHost.AddServiceEndpoint( typeof (IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex" );
  serviceHost.Open();
 

3、配置文件中申明

<? xml  version = "1.0"  encoding = "utf-8"  ?>
< configuration >
   < system.servicemodel >
     < services >
       < service  name = "EssentialWCF.StockService"  behaviorConfiguration = "myServiceBehavior" >
         < host >
           < baseaddresses >
             < add  baseaddress = "http://localhost:8000/EssentialWCF"  />
           </ baseaddresses >
         </ host >
         < endpoint  address = ""  binding = "basicHttpBinding"  contract = "EssentialWCF.IStockService"  />
         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
       </ service >
     </ services >
     <behaviors>
      <serviceBehaviors>
        <behavior name="myServiceBehavior">
          <serviceMetadata httpGetEnabled="True" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
   </ system.servicemodel >
</ configuration >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值