WCF配置文件

   一遇到配置文件的问题,头就大,因为根本就看不懂配置文件。其实这个观点是错误的,只要我们有了WCF的基础,配置文件完全不是问题。

   这次,带领大家认识WCF配置文件。

一、WCF配置文件基本结构

<?xml version="1.0"encoding="utf-8"?>
<configuration>
     <system.serviceModel>
          
          <!--配置服务和终结点开始-->
          <!-- services 元素包含应用中驻留的所有service的配置要求 -->
          <services>
               <!--配置某一服务,在这里可以指定服务名称-->
               <service name=”命名空间.类型名” behaviorConfiguration="behavior名">
                    <endpoint address="URI" binding="wsHttpBinding" contract="Contract全限定名" bindingConfiguration="binding名" name=""/>
              </service>  
          </services>
          <!--配置服务和终结点结束-->

         <!--配置绑定节点开始-->
         <bindings>
            <wsHttpBinding>

              <binding name="binding名"/>

           </WsHttpBinding>

        </bindings>

        <!--配置绑定节点结束-->

 

        <!--配置service和Endpiont行为开始-->

       <behaviors>

          <serviceBehaviors>

            <behavior>

            </behavior>

          </serviceBehaviors>

       </behaviors>

       <!--配置行为结束-->

 

       <!--定义客户端的配置-->

       <client>

            <endpoint address="URI" binding="wsHttpBinding" bindingConfiguration="binding名" contract="Contract全限定名" name="endpoint配置名"/>

        </client>

 
    </system.serviceModel>

  </configuration>

二、配置节点详细介绍

1<services>节点

示例:

<services>

    <service name="ITOO.ExamEvalPaper.Service.WCFService.ExamEvalPaperService" behaviorConfiguration="ExamEvalPaper">

       <endpoint address ="" binding="wsHttpBinding" bindingConfiguration="WsHttpBinding_Default" contract="ITOO.ExamEvalPaper.Contracts.IExamEvalPaperService" />

    </service>

 </services>
   <service> 节点包含name 和behaviorConfiguration属性。其中,name配置了实现Service Contract的类型名。类型名必须是完整地包含了命名空间和类型名

如图:


  behaviorConfiguration的配置值与其后的<behaviors>配置节的内容有关:

<behaviors>

     <serviceBehaviors>

       <behavior name="ExamEvalPaper">

              <!—ServiceMetadataBehavior表示WCF服务可以对外公布元数据(Metadata)-->

         <serviceMetadata httpGetEnabled="True"/>

         <serviceDebugincludeExceptionDetailInFaults="true" />

       </behavior>

    </serviceBehaviors>

</behaviors>

   <endpoint>是<service>配置节点的主体,其中,<endpoint>节点包含了endpoint的三个组成部分ABC,即Address、Binding和Contract。由于具体的 binding配置是在<bindings>节点中完成,因而,在<endpoint>中配置了bindingConfiguration属性,指向具体的binding配置。

<bindings>

     <wsHttpBinding>
        
         <binding name="WsHttpBinding_Default" transactionFlow="true" closeTimeout="00:10:00" receiveTimeout="00:20:00" sendTimeout="00:20:00" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" useDefaultWebProxy="false"/>
    
     </wsHttpBinding>

</bindings>

2<Bindings>节点

   指定一个或多个系统预定义的binding,也可以指定自定义的customBinding。大家有没有发现在3.0中用到的bindingbasicHttpBinding,而在3.1用到的是wsHttpBinding

   那么,我们来看一下binding都有什么?

绑定

配置元素

说明

BasicHttpBinding

<basicHttpBinding>

一个绑定,适用于与符合 WS-Basic Profile 的 Web 服务(例如基于 ASP.NET Web 服务 (ASMX) 的服务)进行的通信。此绑定使用 HTTP 作为传输协议,并使用文本/XML 作为默认的消息编码。

WSHttpBinding

<wsHttpBinding>


一个安全且可互操作的绑定,适合于非双工服务约定。

WSDualHttpBinding


<wsDualHttpBinding>

一个安全且可互操作的绑定,适用于双工服务协定或通过 SOAP 媒介进行的通信。

WSFederationHttpBinding

<wsFederationHttpBinding>

一个支持 WS-Federation 协议的安全的、可互操作的绑定,使联盟中的组织可以高效地对用户进行身份验证和授权。

NetTcpBinding


<netTcpBinding>

一个安全且经过优化的绑定,适用于 WCF 应用程序之间跨计算机的通信。

NetNamedPipeBinding

<netNamedPipeBinding>

一个安全、可靠且经过优化的绑定,适用于 WCF 应用程序之间计算机上的通信。

NetMsmqBinding

<netMsmqBinding>

一个排队绑定,适用于 WCF 应用程序之间的跨计算机的通信。

NetPeerTcpBinding

 


<netPeerTcpBinding>

一个支持多计算机安全通信的绑定。

MsmqIntegrationBinding

<msmqIntegrationBinding>

一个适合于 WCF 应用程序和现有消息队列应用程序之间的跨计算机通信的绑定。

 BasicHttpContextBinding

<basicHttpContextBinding>

一个绑定,适用于与符合 WS-Basic Profile 且允许使用 HTTP Cookie 交换上下文的 Web 服务进行的通信。

   现在大家是不是感觉WCF配置文件很简单啦!

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值