WCF配置文件
WCF配置文件?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
? ? <!-- <system.ServiceModel> section -->
? ? <system.ServiceModel>
? ? ? ? <!-- services 元素包含應(yīng)用中駐留的所有service的配置要求 -->
? ? ? ? <services>
? ? ? ? ? ? <!-- 每個(gè)服務(wù)的配置
? ? ? ? ? ? ?屬性說(shuō)明:?
? ? ? ? ? ? ?name - 指定這個(gè)service配置是針對(duì)的那個(gè)服務(wù),為一個(gè)實(shí)現(xiàn)了某些Contract的服務(wù)類的完全限定名
? ? ? ? ? ? ? ? ? ?(名稱空間.類型名),ServiceHost載入一個(gè)服務(wù)后,會(huì)到配置文件中的<services>下找有沒(méi)有
? ? ? ? ? ? ? ? ? ?name屬性跟服務(wù)匹配的<service>的配置?
? ? ? ? ? ? ?behaviorConfiguration - 指定在<serviceBehaviors>下的一個(gè)<behavior>的name,這個(gè)特定<behavior>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?給這個(gè)service制定了一些行為,比如服務(wù)是否允許身份模擬-->
? ? ? ? ? ? <service name="名稱空間.類型名" behaviorConfiguration="behavior名">
? ? ? ? ? ? ? ? <!-- 每個(gè)服務(wù)可以有多個(gè)Endpoint,下面<endpoint>元素對(duì)每個(gè)Endpoint分別進(jìn)行配置
? ? ? ? ? ? ? ? ?屬性說(shuō)明:?
? ? ? ? ? ? ? ? ?address - 指定這個(gè)Endpoint對(duì)外的URI,這個(gè)URI可以是個(gè)絕對(duì)地址,也可以是個(gè)相對(duì)于baseAddress的
? ? ? ? ? ? ? ? ? ? ? ? ? ?相對(duì)地址。如果此屬性為空,則這個(gè)Endpoint的地址就是baseAddress
? ? ? ? ? ? ? ? ?binding - 指定這個(gè)Endpoint使用的binding,這個(gè)banding可以是系統(tǒng)預(yù)定義的9個(gè)binding之一,
? ? ? ? ? ? ? ? ? ? ? ? ? ?比如是basicHttpBinding,也可以是自定義的customBinding。binding決定了通訊的類型、
? ? ? ? ? ? ? ? ? ? ? ? ? ?安全、如何編碼、是否基于session、是否基于事務(wù)等等
? ? ? ? ? ? ? ? ?contract - 指定這個(gè)Endpoint對(duì)應(yīng)的Contract的全限定名(名稱空間.類型名),這個(gè)Contract應(yīng)該被
? ? ? ? ? ? ? ? ? ? ? ? ? ? service元素的name指定的那個(gè)service實(shí)現(xiàn)?
? ? ? ? ? ? ? ? ?bindingConfiguration - 指定一個(gè)binding的配置名稱,跟<bindings>下面同類<binding>的name匹配
? ? ? ? ? ? ? ? ?name - Endpoint的名稱,可選屬性,每個(gè)Contract都可以有多個(gè)Endpoint,但是每個(gè)Contract對(duì)應(yīng)的
? ? ? ? ? ? ? ? ? ? ? ? 多個(gè)Endpoint名必須是唯一的-->
? ? ? ? ? ? ? ? <endpoint address="URI" binding="basicHttpBinding" contract="Contract全限定名" bindingConfiguration="binding名" name="">
? ? ? ? ? ? ? ? ? ? <!-- 用戶定義的xml元素集合,一般用作SOAP的header內(nèi)容-->
? ? ? ? ? ? ? ? ? ? <headers>
? ? ? ? ? ? ? ? ? ? ? ? <!-- 任何xml內(nèi)容 -->
? ? ? ? ? ? ? ? ? ? </headers>
? ? ? ? ? ? ? ? ? ? <identity>
? ? ? ? ? ? ? ? ? ? ? ? <!-- <identity>下的元素都是可選的-->
? ? ? ? ? ? ? ? ? ? ? ? <userPrincipalName></userPrincipalName>
? ? ? ? ? ? ? ? ? ? ? ? <servicePrincipalName></servicePrincipalName>
? ? ? ? ? ? ? ? ? ? ? ? <dns></dns>
? ? ? ? ? ? ? ? ? ? ? ? <rsa></rsa>
? ? ? ? ? ? ? ? ? ? ? ? <certificate encodedValue=""></certificate>
? ? ? ? ? ? ? ? ? ? ? ? <!-- <certificateReference>的屬性都是可選的
? ? ? ? ? ? ? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ? ? ? ? ? ? ?storeName - 證書(shū)的存儲(chǔ)區(qū),可能值為:AddressBook,AuthRoot,CertificateAuthority
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Disallowed,My,Root,TrustedPeople,TrustedPublisher
? ? ? ? ? ? ? ? ? ? ? ? ?storeLocation - 證書(shū)存儲(chǔ)位置,可能值為:CurrentUser,LocalMachine-->
? ? ? ? ? ? ? ? ? ? ? ? <certificateReference storeName="" storeLocation="">
? ? ? ? ? ? ? ? ? ? ? ? </certificateReference>
? ? ? ? ? ? ? ? ? ? </identity>
? ? ? ? ? ? ? ? </endpoint>
? ? ? ? ? ? ? ? <host>
? ? ? ? ? ? ? ? ? ? <baseAddresses>
? ? ? ? ? ? ? ? ? ? ? ? <!-- 在此可以定義每種傳輸協(xié)議的baseAddress,用于跟使用同樣傳輸協(xié)議Endpoint定義的相對(duì)地
? ? ? ? ? ? ? ? ? ? 址組成完整的地址,但是每種傳輸協(xié)議只能定義一個(gè)baseAddress。HTTP的baseAddress同時(shí)是service
? ? ? ? ? ? ? ? ? ? 對(duì)外發(fā)布元數(shù)據(jù)的URL-->
? ? ? ? ? ? ? ? ? ? ? ? <add baseAddress="http://address" />
? ? ? ? ? ? ? ? ? ? </baseAddresses>
? ? ? ? ? ? ? ? ? ? <timeouts></timeouts>
? ? ? ? ? ? ? ? </host>
? ? ? ? ? ? </service>
? ? ? ? </services>
? ? ? ? <bindings>
? ? ? ? ? ? <!-- 指定一個(gè)或多個(gè)系統(tǒng)預(yù)定義的binding,比如<basicHttpBinding>,當(dāng)然也可以指定自定義的customBinding,
? ? ? ? ? ? ?然后在某個(gè)指定的binding下建立一個(gè)或多個(gè)配置,以便被Endpoint來(lái)使用這些配置 -->
? ? ? ? ? ? <basicHttpBinding>
? ? ? ? ? ? ? ? <!-- 某一類的binding的下面可能有多個(gè)配置,binding元素的name屬性標(biāo)識(shí)某個(gè)binding-->
? ? ? ? ? ? ? ? <binding name="binding名">
? ? ? ? ? ? ? ? </binding>
? ? ? ? ? ? </basicHttpBinding>
? ? ? ? </bindings>
? ? ? ? <!-- 定義service和Endpiont行為-->
? ? ? ? <behaviors>
? ? ? ? ? ? <!-- 定義service的行為-->
? ? ? ? ? ? <serviceBehaviors>
? ? ? ? ? ? ? ? <!-- 一個(gè)或多個(gè)系統(tǒng)提供的或定制的behavior元素
? ? ? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ? ? ?name - 一個(gè)behavior唯一標(biāo)識(shí),<service>元素的behaviorConfiguration屬性指向這個(gè)name-->
? ? ? ? ? ? ? ? <behavior name="">
? ? ? ? ? ? ? ? ? ? <!-- 指定service元數(shù)據(jù)發(fā)布和相關(guān)信息
? ? ? ? ? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ? ? ? ? ?httpGetEnabled - bool類型的值,表示是否允許通過(guò)HTTP的get方法獲取sevice的WSDL元數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ?httpGetUrl - 如果httpGetEnabled為true,這個(gè)屬性指示使用哪個(gè)URL地址發(fā)布服務(wù)的WSDL,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果這個(gè)屬性沒(méi)有設(shè)置,則使用服務(wù)的HTTP類型的baseAddress后面加上?WSDL-->
? ? ? ? ? ? ? ? ? ? <serviceMetadata httpGetEnabled="true" httpGetUrl="http://URI:port/address" />
? ? ? ? ? ? ? ? </behavior>
? ? ? ? ? ? </serviceBehaviors>
? ? ? ? ? ? <!-- 定義Endpiont的行為-->
? ? ? ? ? ? <endpointBehaviors>
? ? ? ? ? ? </endpointBehaviors>
? ? ? ? </behaviors>
? ? ? ? <!-- 包含客戶端跟服務(wù)端連接使用到的Endpoint的配置 -->
? ? ? ? <client>
? ? ? ? ? ? <!-- 每個(gè)客戶端Endpoint設(shè)置
? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ?address - 對(duì)應(yīng)到服務(wù)端這個(gè)Endpoint的address
? ? ? ? ? ? ?binding - 指定這個(gè)Endpoint使用的binding,這個(gè)banding可以是系統(tǒng)預(yù)定義的9個(gè)binding之一,
? ? ? ? ? ? ? ? ? ? ? ?比如是basicHttpBinding
? ? ? ? ? ? ?contract - 指定這個(gè)Endpoint對(duì)應(yīng)的Contract的全限定名(名稱空間.類型名)
? ? ? ? ? ? ?name - Endpoint的配置名,客戶端代理類的構(gòu)造方法中的endpointConfigurationName對(duì)應(yīng)到這個(gè)name
? ? ? ? ? ? ?bindingConfiguration - 指定客戶端binding的具體設(shè)置,指向<bindings>元素下同類型binding的name -->
? ? ? ? ? ? <endpoint address="URI"
? ? ? ? ? ? ? ? binding="basicHttpBinding" bindingConfiguration="binding名"
? ? ? ? ? ? ? ? contract="Contract全限定名" name="endpoint配置名" />
? ? ? ? </client>
? ? </system.ServiceModel>
</configuration>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
? ? <!-- <system.ServiceModel> section -->
? ? <system.ServiceModel>
? ? ? ? <!-- services 元素包含應(yīng)用中駐留的所有service的配置要求 -->
? ? ? ? <services>
? ? ? ? ? ? <!-- 每個(gè)服務(wù)的配置
? ? ? ? ? ? ?屬性說(shuō)明:?
? ? ? ? ? ? ?name - 指定這個(gè)service配置是針對(duì)的那個(gè)服務(wù),為一個(gè)實(shí)現(xiàn)了某些Contract的服務(wù)類的完全限定名
? ? ? ? ? ? ? ? ? ?(名稱空間.類型名),ServiceHost載入一個(gè)服務(wù)后,會(huì)到配置文件中的<services>下找有沒(méi)有
? ? ? ? ? ? ? ? ? ?name屬性跟服務(wù)匹配的<service>的配置?
? ? ? ? ? ? ?behaviorConfiguration - 指定在<serviceBehaviors>下的一個(gè)<behavior>的name,這個(gè)特定<behavior>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?給這個(gè)service制定了一些行為,比如服務(wù)是否允許身份模擬-->
? ? ? ? ? ? <service name="名稱空間.類型名" behaviorConfiguration="behavior名">
? ? ? ? ? ? ? ? <!-- 每個(gè)服務(wù)可以有多個(gè)Endpoint,下面<endpoint>元素對(duì)每個(gè)Endpoint分別進(jìn)行配置
? ? ? ? ? ? ? ? ?屬性說(shuō)明:?
? ? ? ? ? ? ? ? ?address - 指定這個(gè)Endpoint對(duì)外的URI,這個(gè)URI可以是個(gè)絕對(duì)地址,也可以是個(gè)相對(duì)于baseAddress的
? ? ? ? ? ? ? ? ? ? ? ? ? ?相對(duì)地址。如果此屬性為空,則這個(gè)Endpoint的地址就是baseAddress
? ? ? ? ? ? ? ? ?binding - 指定這個(gè)Endpoint使用的binding,這個(gè)banding可以是系統(tǒng)預(yù)定義的9個(gè)binding之一,
? ? ? ? ? ? ? ? ? ? ? ? ? ?比如是basicHttpBinding,也可以是自定義的customBinding。binding決定了通訊的類型、
? ? ? ? ? ? ? ? ? ? ? ? ? ?安全、如何編碼、是否基于session、是否基于事務(wù)等等
? ? ? ? ? ? ? ? ?contract - 指定這個(gè)Endpoint對(duì)應(yīng)的Contract的全限定名(名稱空間.類型名),這個(gè)Contract應(yīng)該被
? ? ? ? ? ? ? ? ? ? ? ? ? ? service元素的name指定的那個(gè)service實(shí)現(xiàn)?
? ? ? ? ? ? ? ? ?bindingConfiguration - 指定一個(gè)binding的配置名稱,跟<bindings>下面同類<binding>的name匹配
? ? ? ? ? ? ? ? ?name - Endpoint的名稱,可選屬性,每個(gè)Contract都可以有多個(gè)Endpoint,但是每個(gè)Contract對(duì)應(yīng)的
? ? ? ? ? ? ? ? ? ? ? ? 多個(gè)Endpoint名必須是唯一的-->
? ? ? ? ? ? ? ? <endpoint address="URI" binding="basicHttpBinding" contract="Contract全限定名" bindingConfiguration="binding名" name="">
? ? ? ? ? ? ? ? ? ? <!-- 用戶定義的xml元素集合,一般用作SOAP的header內(nèi)容-->
? ? ? ? ? ? ? ? ? ? <headers>
? ? ? ? ? ? ? ? ? ? ? ? <!-- 任何xml內(nèi)容 -->
? ? ? ? ? ? ? ? ? ? </headers>
? ? ? ? ? ? ? ? ? ? <identity>
? ? ? ? ? ? ? ? ? ? ? ? <!-- <identity>下的元素都是可選的-->
? ? ? ? ? ? ? ? ? ? ? ? <userPrincipalName></userPrincipalName>
? ? ? ? ? ? ? ? ? ? ? ? <servicePrincipalName></servicePrincipalName>
? ? ? ? ? ? ? ? ? ? ? ? <dns></dns>
? ? ? ? ? ? ? ? ? ? ? ? <rsa></rsa>
? ? ? ? ? ? ? ? ? ? ? ? <certificate encodedValue=""></certificate>
? ? ? ? ? ? ? ? ? ? ? ? <!-- <certificateReference>的屬性都是可選的
? ? ? ? ? ? ? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ? ? ? ? ? ? ?storeName - 證書(shū)的存儲(chǔ)區(qū),可能值為:AddressBook,AuthRoot,CertificateAuthority
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Disallowed,My,Root,TrustedPeople,TrustedPublisher
? ? ? ? ? ? ? ? ? ? ? ? ?storeLocation - 證書(shū)存儲(chǔ)位置,可能值為:CurrentUser,LocalMachine-->
? ? ? ? ? ? ? ? ? ? ? ? <certificateReference storeName="" storeLocation="">
? ? ? ? ? ? ? ? ? ? ? ? </certificateReference>
? ? ? ? ? ? ? ? ? ? </identity>
? ? ? ? ? ? ? ? </endpoint>
? ? ? ? ? ? ? ? <host>
? ? ? ? ? ? ? ? ? ? <baseAddresses>
? ? ? ? ? ? ? ? ? ? ? ? <!-- 在此可以定義每種傳輸協(xié)議的baseAddress,用于跟使用同樣傳輸協(xié)議Endpoint定義的相對(duì)地
? ? ? ? ? ? ? ? ? ? 址組成完整的地址,但是每種傳輸協(xié)議只能定義一個(gè)baseAddress。HTTP的baseAddress同時(shí)是service
? ? ? ? ? ? ? ? ? ? 對(duì)外發(fā)布元數(shù)據(jù)的URL-->
? ? ? ? ? ? ? ? ? ? ? ? <add baseAddress="http://address" />
? ? ? ? ? ? ? ? ? ? </baseAddresses>
? ? ? ? ? ? ? ? ? ? <timeouts></timeouts>
? ? ? ? ? ? ? ? </host>
? ? ? ? ? ? </service>
? ? ? ? </services>
? ? ? ? <bindings>
? ? ? ? ? ? <!-- 指定一個(gè)或多個(gè)系統(tǒng)預(yù)定義的binding,比如<basicHttpBinding>,當(dāng)然也可以指定自定義的customBinding,
? ? ? ? ? ? ?然后在某個(gè)指定的binding下建立一個(gè)或多個(gè)配置,以便被Endpoint來(lái)使用這些配置 -->
? ? ? ? ? ? <basicHttpBinding>
? ? ? ? ? ? ? ? <!-- 某一類的binding的下面可能有多個(gè)配置,binding元素的name屬性標(biāo)識(shí)某個(gè)binding-->
? ? ? ? ? ? ? ? <binding name="binding名">
? ? ? ? ? ? ? ? </binding>
? ? ? ? ? ? </basicHttpBinding>
? ? ? ? </bindings>
? ? ? ? <!-- 定義service和Endpiont行為-->
? ? ? ? <behaviors>
? ? ? ? ? ? <!-- 定義service的行為-->
? ? ? ? ? ? <serviceBehaviors>
? ? ? ? ? ? ? ? <!-- 一個(gè)或多個(gè)系統(tǒng)提供的或定制的behavior元素
? ? ? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ? ? ?name - 一個(gè)behavior唯一標(biāo)識(shí),<service>元素的behaviorConfiguration屬性指向這個(gè)name-->
? ? ? ? ? ? ? ? <behavior name="">
? ? ? ? ? ? ? ? ? ? <!-- 指定service元數(shù)據(jù)發(fā)布和相關(guān)信息
? ? ? ? ? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ? ? ? ? ?httpGetEnabled - bool類型的值,表示是否允許通過(guò)HTTP的get方法獲取sevice的WSDL元數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ?httpGetUrl - 如果httpGetEnabled為true,這個(gè)屬性指示使用哪個(gè)URL地址發(fā)布服務(wù)的WSDL,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果這個(gè)屬性沒(méi)有設(shè)置,則使用服務(wù)的HTTP類型的baseAddress后面加上?WSDL-->
? ? ? ? ? ? ? ? ? ? <serviceMetadata httpGetEnabled="true" httpGetUrl="http://URI:port/address" />
? ? ? ? ? ? ? ? </behavior>
? ? ? ? ? ? </serviceBehaviors>
? ? ? ? ? ? <!-- 定義Endpiont的行為-->
? ? ? ? ? ? <endpointBehaviors>
? ? ? ? ? ? </endpointBehaviors>
? ? ? ? </behaviors>
? ? ? ? <!-- 包含客戶端跟服務(wù)端連接使用到的Endpoint的配置 -->
? ? ? ? <client>
? ? ? ? ? ? <!-- 每個(gè)客戶端Endpoint設(shè)置
? ? ? ? ? ? ?屬性說(shuō)明:
? ? ? ? ? ? ?address - 對(duì)應(yīng)到服務(wù)端這個(gè)Endpoint的address
? ? ? ? ? ? ?binding - 指定這個(gè)Endpoint使用的binding,這個(gè)banding可以是系統(tǒng)預(yù)定義的9個(gè)binding之一,
? ? ? ? ? ? ? ? ? ? ? ?比如是basicHttpBinding
? ? ? ? ? ? ?contract - 指定這個(gè)Endpoint對(duì)應(yīng)的Contract的全限定名(名稱空間.類型名)
? ? ? ? ? ? ?name - Endpoint的配置名,客戶端代理類的構(gòu)造方法中的endpointConfigurationName對(duì)應(yīng)到這個(gè)name
? ? ? ? ? ? ?bindingConfiguration - 指定客戶端binding的具體設(shè)置,指向<bindings>元素下同類型binding的name -->
? ? ? ? ? ? <endpoint address="URI"
? ? ? ? ? ? ? ? binding="basicHttpBinding" bindingConfiguration="binding名"
? ? ? ? ? ? ? ? contract="Contract全限定名" name="endpoint配置名" />
? ? ? ? </client>
? ? </system.ServiceModel>
</configuration>
總結(jié)
- 上一篇: 飞鸽传书的基本原则
- 下一篇: Project FreeEIM 2.0: