WCF配置文件详解
<?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>
總結
- 上一篇: MyEclipse下Axis2插件的下载
- 下一篇: 什么时候吃钙片效果最好(钙片什么时候吃吸