WCF 配置系列(一)

我们在做WCF项目时,经常要编写WCF的服务端和客户端,也要涉及一些配置。我从网上看了些文章,现在进行罗列,供大家交流。

 、服务端配置

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.ServiceModel>
    <services>
      <service>
        <host/>
        <endpoint/>
      </service>
    </services>
    <behaviors>
      <behavior>

      </behavior>
    </behaviors>
    <bindings>
     
          <binding>
          
          </binding>
       
     </bindings>
  </system.ServiceModel>
</configuration>

 

1.<System.ServiceModel>配置节包含了所有的WCF配置信息,其位于根配置节Configuration之下。

 ServiceModel节点有3个部分

  • <Services>节点
  • <Behaviors>节点
  • <Bindinds>节点

(一)<Services>节点

<Services>节点下,可以有很多个<service>节点。

<service>节点有两个属性:name和behaviorConfiguration.

  1.Name属性是必须配置的,它的值应该是实现服务的类的名称,并包含它的命名空间在内(即命名空间+类名)。

  2.BehaviorConfiguration属性用来指定服务的行为名称,可以为空(这里的Behavior,其实是 Service Behavior,后面我会介绍endpointBehaviors)。BehaviorConfiguration属性的值应该在后面的<behviors>配置节下被定义,否则WCF服务端将无法启动。

  3.在<service>标签下,还需要包含一些子节点来定义服务的信息。

    <host>
          <baseAddresses>
            <add baseAddress=""/>
          </baseAddresses>
        </host>
        <endpoint address="" binding="wsHttpBinding" contract="" bindingConfiguration="" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>

  3.1<host>节点,这个节点指定服务的宿主信息。下面对部分节点做个说明:

    A.<baseAddresses>节点:指定服务的访问地址。使用<add baseAddress=""/>标签进行地址的添加,可以添加多个地址。根据WCF宿主程序的不同,地址会有不同的形式。

    B.<timeouts>节点:用来指定服务启动或关闭的间隔。可以使用closeTimeout 和 openTimeout两个属性进行控制。

    C.<endpoint>节点:WCF需要在endpoint节点中指定服务指定的服务契约类型、通信绑定(Binding)和Behavior的绑定。<endpoint>节点有如下的属性用来指定上述信息。

      <address>:指定enpoint的地址。地址必须为合法的Url格式,可以使相对路径也可以是绝对路径。address属性值可以为空,但是这个属性必须存在。如果address值为空,那么地址就是之前定义的baseAddresses中的地址。

      <bindingConfiguration>:可选属性。除非有自定义的绑定策略,否则不要设置这个值。

      <bingding>:指定使用的绑定策略,此属性为必要属性。使用的绑定策略师<binding>节点下定义的。

      <contract>:该属性也是必须属性。它指定服务契约的类型,推荐使用接口来定义契约,并在这里使用接口的全名称。(如果不是有接口定义,也可以使用命名空间+类名来定义)。

      <behaviorConfiguration>:可选属性,指定要使用的behavior配置的名称。

 

一个应用程序可以配置多个<endpoint>.

 

posted on 2009-12-15 22:52  大鱼,大禹  阅读(1741)  评论(0编辑  收藏  举报

导航