WCF Service 配置文件注释
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.servicemodel>
<!-- services 元素包含应用中驻留的所有service的 配置要求 -->
<services>
<!-- 每个服务的配置属性说明:
name - 指 定这个service配置是针对的那个服务,为 一个实现了某些contract的服务类的完全
限定名(名称空间.类型名),servicehost载入一个服务后,会 到配置文件中的 下找有
没有name属性跟服务匹配的 的配置
behaviorconfiguration - 指定在下的一个的name,这个特定给这个service制定了一些行为,
比 如服务是否答应身份模拟-->
<service name="名称空间.类型名" behaviorconfiguration="behavior名">
<host>
<baseaddresses>
<!-- 在此可以定义每种传输协议的baseaddress, 用于跟使用同样传输协议endpoint定义的相对地
址组成完整的地址,但是每种传输协议只能定义一个baseaddress。http的baseaddress同时是service
对外发布服务说明页面的url-->
<add baseaddress="http://address" />
</baseaddresses>
<timeouts></timeouts>
</host>
<!-- 每个服务可以有多个endpoint, 下面 元素对每个endpoint分别进行 配置
属性说明:
address - 指 定这个endpoint对外的uri,这个uri可以是个绝对地址,也可以是个相对于baseaddress的
相对地址。假如此属性为空,则这 个endpoint的地址就是baseaddress
binding - 指定这个endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,
比如是basichttpbinding,也可以是自定义的custombinding。binding决定了通讯 的类型、
安全、如何编码、是否基于session、是否基于事务等等
contract - 指定这个endpoint对应的contract的全限定名(名称空间.类型名),这个contract应 该被
service元素的name指定的那个service实现
bindingconfiguration - 指 定一个binding的配置名称,跟下面同 类的name匹配
behaviorconfiguration - 指 定这个endpoint的behavior, 指向 下的同样配置名称的
name - endpoint的名称,可选属性,每个contract都可以有多个endpoint,但是每个contract对应的
多个endpoint名必须是唯一的-->
<endpoint address="uri" binding="basichttpbinding" contract="contract全限定名" bindingconfiguration="binding名" behaviorconfiguration="string" name="">
<!-- 用户定义的xml元素集合, 一般用作soap的header内容-->
<headers>
<!-- 任何xml内容 -->
</headers>
</endpoint>
</service>
</services>
<bindings>
<!-- 指定一个或多个系统预定义的binding, 比如,当然也可以指定自定义的custombinding,
然后在某个指定的binding下建立一个或多个配置,以便被endpoint来 使用这些配置 -->
<basichttpbinding>
<!-- 某一类的binding的下 面可能有多个配置,binding元素的name属 性标识某个binding-->
<binding name="binding名">
</binding>
</basichttpbinding>
</bindings>
<!-- 定义service和endpiont行为-->
<behaviors>
<!-- 定义service的行为-->
<servicebehaviors>
<!-- 一个或多个系统提供的或定制的behavior元 素
属性说明:
name - 一个behavior唯一标识,元素下的behaviorconfiguration属 性指向这个name-->
<behavior name="此behavior名称">
<!-- 指定service元数据发 布和相关信息
属性说明:
httpgetenabled - bool类型的值,表示是否答应通过http的get方 法获得sevice的wsdl元数据
httpgeturl - 如 果httpgetenabled为true, 这个属性指示使用哪个url地址发布服务的wsdl,
假如这个属性没有设置,则使用服务的http类型的baseaddress后面加上?wsdl-->
<servicemetadata httpgetenabled="true" httpgeturl="http://uri:port/address" />
<!--指定验证服务端的凭据-->
<servicecredentials>
<!--指定服务端的证书
属性说明:
storename - 证 书的存储区,可能值为:addressbook,authroot,certificateauthority
disallowed,my,root,trustedpeople,trustedpublisher
storelocation - 证书存储位置,可能值为:currentuser,localmachine
x509findtype - 查找证书的方式,可能的值:findbysubjectname,findbythumbprint,findbyissuername......
findvalue - 对应查找方式的要查找证书的值 -->
<servicecertificate storename="存储区" storelocation="存储位置" x509findtype="findbysubjectname" findvalue="server1" />
</servicecredentials>
</behavior>
</servicebehaviors>
<!-- 定义endpiont的行为-->
<endpointbehaviors>
<!-- 一个或多个系统提供的或定制的behavior元 素
属性说明:
name - 一个behavior唯一标识,元素下的behaviorconfiguration属 性指向这个name-->
<behavior name="此behavior名称">
<!--指定客户端的凭据-->
<clientcredentials>
<!--指定客户端的证书
属性说明:
storename - 证 书的存储区,可能值为:addressbook,authroot,certificateauthority
disallowed,my,root,trustedpeople,trustedpublisher
storelocation - 证书存储位置,可能值为:currentuser,localmachine
x509findtype - 查找证书的方式,可能的值:findbysubjectname,findbythumbprint,findbyissuername......
findvalue - 对应查找方式的要查找证书的值 -->
<clientcertificate storename="存储区" storelocation="存储位置" x509findtype="findbysubjectname" findvalue="client1" />
<servicecertificate>
<authentication certificatevalidationmode="none" />
</servicecertificate>
</clientcredentials>
</behavior>
</endpointbehaviors>
</behaviors>
<!-- 包含客户端跟服务端连接使用到的endpoint的 配置 -->
<client>
<!-- 每个客户端endpoint设置
属性说明:
address - 对 应到服务端这个endpoint的address
binding - 指定这个endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,
比如是basichttpbinding
contract - 指 定这个endpoint对应的contract的 全限定名(名称空间.类型名)
name - endpoint的配置名,客户端代理类的构造方法中的endpointconfigurationname对 应到这个name
bindingconfiguration - 指 定客户端binding的具体设置,指向元 素下同类型binding的name
behaviorconfiguration - 指定这个endpoint的behavior,指向 下的同样配置名称的 -->
<endpoint address="uri" binding="basichttpbinding" bindingconfiguration="binding名" behaviorconfiguration="string" contract="contract全限定名" name="endpoint配置名" >
<!-- 用于客户端验证服务端身份,可选以下一种方式验证服务端-->
<identity>
<userprincipalname></userprincipalname>
<serviceprincipalname></serviceprincipalname>
<!--假如客户端验证是windows,这里指定dns名;假如是certificate, 这里指定证书subject name-->
<dns></dns>
<rsa></rsa>
<!--指定服务端证书的公钥
属性说明:
encodedvalue - 服务端证书的公钥的base64编码,用于加密用户名和 密码-->
<certificate encodedvalue=""></certificate>
<!-- 用户指定在客户端证书存储区内的服务端证书
属性说明:
storename - 证 书的存储区,可能值为:addressbook,authroot,certificateauthority
disallowed,my,root,trustedpeople,trustedpublisher
storelocation - 证书存储位置,可能值为:currentuser,localmachine
x509findtype - 查找证书的方式,可能的值:findbysubjectname,findbythumbprint,findbyissuername......
findvalue - 对应查找方式的要查找证书的值 -->
<certificatereference storename="存储区" storelocation="存储位置" x509findtype="findbysubjectname" findvalue="client1" />
</identity>
</endpoint>
</client>
</system.servicemodel>
</configuration>
浙公网安备 33010602011771号