<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- <system.ServiceModel> section -->
<system.ServiceModel>
<!-- services
元素包含应用中驻留的所有
service
的配置要求
-->
<
services
>
<!--
每个服务的配置
属性说明
:
name -
指定这个
service
配置是针对的那个服务
,
为一个实现了某些
Contract
的服务类的完全限定名
(
名称空间
.
类型名
),ServiceHost
载入一个服务后,会到配置文件中的
<services>
下找有没有
name
属性跟服务匹配的
<service>
的配置
behaviorConfiguration -
指定在
<serviceBehaviors>
下的一个
<behavior>
的
name,
这个特定
<behavior>
给这个
service
制定了一些行为
,
比如服务是否允许身份模拟
-->
<
service
name
="
名称空间
.
类型名
"
behaviorConfiguration
="behavior
名
">
<!--
每个服务可以有多个
Endpoint
,下面
<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
的配置名称,跟
<bindings>
下面同类
<binding>
的
name
匹配
name - Endpoint
的名称,可选属性,每个
Contract
都可以有多个
Endpoint
,但是每个
Contract
对应的
多个
Endpoint
名必须是唯一的
-->
<
endpoint
address
="URI"
binding
="basicHttpBinding"
contract
="Contract
全限定名
"
bindingConfiguration
="binding
名
"
name
="">
<!--
用户定义的
xml
元素集合,一般用作
SOAP
的
header
内容
-->
<
headers
>
<!--
任何
xml
内容
-->
</
headers
>
<
identity
>
<!-- <identity>
下的元素都是可选的
-->
<
userPrincipalName
></
userPrincipalName
>
<
servicePrincipalName
></
servicePrincipalName
>
<
dns
></
dns
>
<
rsa
></
rsa
>
<
certificate
encodedValue
=""></
certificate
>
<!-- <certificateReference>
的属性都是可选的
属性说明:
storeName -
证书的存储区,可能值为:
AddressBook
,
AuthRoot
,
CertificateAuthority
Disallowed
,
My
,
Root
,
TrustedPeople
,
TrustedPublisher
storeLocation -
证书存储位置,可能值为:
CurrentUser
,
LocalMachine-->
<
certificateReference
storeName
=""
storeLocation
="">
</
certificateReference
>
</
identity
>
</
endpoint
>
<
host
>
<
baseAddresses
>
<!--
在此可以定义每种传输协议的
baseAddress
,用于跟使用同样传输协议
Endpoint
定义的相对地
址组成完整的地址,但是每种传输协议只能定义一个
baseAddress
。
HTTP
的
baseAddress
同时是
service
对外发布元数据的
URL-->
<
add
baseAddress
="http://address"
/>
</
baseAddresses
>
<
timeouts
></
timeouts
>
</
host
>
</
service
>
</
services
>
<
bindings
>
<!--
指定一个或多个系统预定义的
binding
,比如
<basicHttpBinding>
,当然也可以指定自定义的
customBinding
,
然后在某个指定的
binding
下建立一个或多个配置,以便被
Endpoint
来使用这些配置
-->
<
basicHttpBinding
>
<!--
某一类的
binding
的下面可能有多个配置,
binding
元素的
name
属性标识某个
binding-->
<
binding
name
="binding
名
">
</
binding
>
</
basicHttpBinding
>
</
bindings
>
<!--
定义
service
和
Endpiont
行为
-->
<
behaviors
>
<!--
定义
service
的行为
-->
<
serviceBehaviors
>
<!--
一个或多个系统提供的或定制的
behavior
元素
属性说明:
name -
一个
behavior
唯一标识
,<service>
元素的
behaviorConfiguration
属性指向这个
name-->
<
behavior
name
="">
<!--
指定
service
元数据发布和相关信息
属性说明:
httpGetEnabled - bool
类型的值,表示是否允许通过
HTTP
的
get
方法获取
sevice
的
WSDL
元数据
httpGetUrl -
如果
httpGetEnabled
为
true
,这个属性指示使用哪个
URL
地址发布服务的
WSDL
,
如果这个属性没有设置,则使用服务的
HTTP
类型的
baseAddress
后面加上
?WSDL-->
<
serviceMetadata
httpGetEnabled
="true"
httpGetUrl
="http://URI:port/address"
/>
</
behavior
>
</
serviceBehaviors
>
<!--
定义
Endpiont
的行为
-->
<
endpointBehaviors
>
</
endpointBehaviors
>
</
behaviors
>
<!--
包含客户端跟服务端连接使用到的
Endpoint
的配置
-->
<
client
>
<!--
每个客户端
Endpoint
设置
属性说明:
address -
对应到服务端这个
Endpoint
的
address
binding -
指定这个
Endpoint
使用的
binding
,这个
banding
可以是系统预定义的
9
个
binding
之一,
比如是
basicHttpBinding
contract -
指定这个
Endpoint
对应的
Contract
的全限定名
(
名称空间
.
类型名
)
name - Endpoint
的配置名,客户端代理类的构造方法中的
endpointConfigurationName
对应到这个
name
bindingConfiguration -
指定客户端
binding
的具体设置,指向
<bindings>
元素下同类型
binding
的
name -->
<
endpoint
address
="URI"
binding
="basicHttpBinding"
bindingConfiguration
="binding
名
"
contract
="Contract
全限定名
"
name
="endpoint
配置名
"
/>
</
client
>
</
system.ServiceModel
>
</
configuration
>
WCF 配置文件
最新推荐文章于 2022-08-28 11:16:30 发布