WCF配置文件詳解(一)

WCF配置文件詳細說明,這個要多看看喲安全

  

  1 <?xml version="1.0" encoding="utf-8" ?>
  2 <configuration>
  3     <!-- <system.ServiceModel> section -->
  4     <system.ServiceModel>
  5         <!-- services 元素包含應用中駐留的全部service的配置要求 -->
  6         <services>
  7             <!-- 每一個服務的配置
  8              屬性說明: 
  9              name - 指定這個service配置是針對的那個服務,爲一個實現了某些Contract的服務類的徹底限定名
 10                    (名稱空間.類型名),ServiceHost載入一個服務後,會到配置文件中的<services>下找有沒有
 11                    name屬性跟服務匹配的<service>的配置 
 12              behaviorConfiguration - 指定在<serviceBehaviors>下的一個<behavior>的name,這個特定<behavior>
 13                                      給這個service制定了一些行爲,好比服務是否容許身份模擬-->
 14             <service name="名稱空間.類型名" behaviorConfiguration="behavior名">
 15                 <!-- 每一個服務能夠有多個Endpoint,下面<endpoint>元素對每一個Endpoint分別進行配置
 16                  屬性說明: 
 17                  address - 指定這個Endpoint對外的URI,這個URI能夠是個絕對地址,也能夠是個相對於baseAddress的
 18                            相對地址。若是此屬性爲空,則這個Endpoint的地址就是baseAddress
 19                  binding - 指定這個Endpoint使用的binding,這個banding能夠是系統預約義的9個binding之一,
 20                            好比是basicHttpBinding,也能夠是自定義的customBinding。binding決定了通信的類型、
 21                            安全、如何編碼、是否基於session、是否基於事務等等
 22                  contract - 指定這個Endpoint對應的Contract的全限定名(名稱空間.類型名),這個Contract應該被
 23                             service元素的name指定的那個service實現 
 24                  bindingConfiguration - 指定一個binding的配置名稱,跟<bindings>下面同類<binding>的name匹配
 25                  name - Endpoint的名稱,可選屬性,每一個Contract均可以有多個Endpoint,可是每一個Contract對應的
 26                         多個Endpoint名必須是惟一的-->
 27                 <endpoint address="URI" binding="basicHttpBinding" contract="Contract全限定名" bindingConfiguration="binding名" name="">
 28                     <!-- 用戶定義的xml元素集合,通常用做SOAP的header內容-->
 29                     <headers>
 30                         <!-- 任何xml內容 -->
 31                     </headers>
 32                     <identity>
 33                         <!-- <identity>下的元素都是可選的-->
 34                         <userPrincipalName></userPrincipalName>
 35                         <servicePrincipalName></servicePrincipalName>
 36                         <dns></dns>
 37                         <rsa></rsa>
 38                         <certificate encodedValue=""></certificate>
 39                         <!-- <certificateReference>的屬性都是可選的
 40                          屬性說明:
 41                          storeName - 證書的存儲區,可能值爲:AddressBook,AuthRoot,CertificateAuthority
 42                                      Disallowed,My,Root,TrustedPeople,TrustedPublisher
 43                          storeLocation - 證書存儲位置,可能值爲:CurrentUser,LocalMachine-->
 44                         <certificateReference storeName="" storeLocation="">
 45                         </certificateReference>
 46                     </identity>
 47                 </endpoint>
 48                 <host>
 49                     <baseAddresses>
 50                         <!-- 在此能夠定義每種傳輸協議的baseAddress,用於跟使用一樣傳輸協議Endpoint定義的相對地
 51                     址組成完整的地址,可是每種傳輸協議只能定義一個baseAddress。HTTP的baseAddress同時是service
 52                     對外發布元數據的URL-->
 53                         <add baseAddress="http://address" />
 54                     </baseAddresses>
 55                     <timeouts></timeouts>
 56                 </host>
 57             </service>
 58         </services>
 59 
 60         <bindings>
 61             <!-- 指定一個或多個系統預約義的binding,好比<basicHttpBinding>,固然也能夠指定自定義的customBinding,
 62              而後在某個指定的binding下創建一個或多個配置,以便被Endpoint來使用這些配置 -->
 63             <basicHttpBinding>
 64                 <!-- 某一類的binding的下面可能有多個配置,binding元素的name屬性標識某個binding-->
 65                 <binding name="binding名">
 66                 </binding>
 67             </basicHttpBinding>
 68         </bindings>
 69         <!-- 定義service和Endpiont行爲-->
 70         <behaviors>
 71             <!-- 定義service的行爲-->
 72             <serviceBehaviors>
 73                 <!-- 一個或多個系統提供的或定製的behavior元素
 74                  屬性說明:
 75                  name - 一個behavior惟一標識,<service>元素的behaviorConfiguration屬性指向這個name-->
 76                 <behavior name="">
 77                     <!-- 指定service元數據發佈和相關信息
 78                      屬性說明:
 79                      httpGetEnabled - bool類型的值,表示是否容許經過HTTP的get方法獲取sevice的WSDL元數據
 80                      httpGetUrl - 若是httpGetEnabled爲true,這個屬性指示使用哪一個URL地址發佈服務的WSDL,
 81                                   若是這個屬性沒有設置,則使用服務的HTTP類型的baseAddress後面加上?WSDL-->
 82                     <serviceMetadata httpGetEnabled="true" httpGetUrl="http://URI:port/address" />
 83                 </behavior>
 84             </serviceBehaviors>
 85             <!-- 定義Endpiont的行爲-->
 86             <endpointBehaviors>
 87             </endpointBehaviors>
 88         </behaviors>
 89         <!-- 包含客戶端跟服務端鏈接使用到的Endpoint的配置 -->
 90         <client>
 91             <!-- 每一個客戶端Endpoint設置
 92              屬性說明:
 93              address - 對應到服務端這個Endpoint的address
 94              binding - 指定這個Endpoint使用的binding,這個banding能夠是系統預約義的9個binding之一,
 95                        好比是basicHttpBinding
 96              contract - 指定這個Endpoint對應的Contract的全限定名(名稱空間.類型名)
 97              name - Endpoint的配置名,客戶端代理類的構造方法中的endpointConfigurationName對應到這個name
 98              bindingConfiguration - 指定客戶端binding的具體設置,指向<bindings>元素下同類型binding的name -->
 99             <endpoint address="URI"
100                 binding="basicHttpBinding" bindingConfiguration="binding名"
101                 contract="Contract全限定名" name="endpoint配置名" />
102         </client>
103     </system.ServiceModel>
104 </configuration>
相關文章
相關標籤/搜索