無廢話WCF入門教程四[WCF的配置文件]


朋友炒股兩個月賺了10萬,我幫他推廣一下公眾號,把錢用來投資總比放銀行連通貨膨脹都跑不過里強硬核離職,在家炒股 ,這是他每天的日志,有些經驗是花錢也買不到的。

一、概述

  配置也是WCF編程中的主要組成部分。在以往的.net應用程序中,我們會把DBConn和一些動態加載類及變量寫在配置文件里。但WCF有所不同。他指定向客戶端公開的服務,包括服務的地址、服務用於發送和接收消息的傳輸和消息編碼,以及服務需要的安全類型等。使用配置文件后,我們無需編譯即可修改WCF的變化的信息,提高了程序的靈活性。

  如果在代碼里寫了配置,那么配置文件將不起作用。

  Web程序在Web.config中配置,應用程序中在App.config中配置。

二、服務配置的主要部分

  在Config中配置服務的結點為:<system.serviceModel></system.serviceModel>,在這個節點中主要有三個平級的部分。如下代碼所示:

 1 <?xml version="1.0" encoding="utf-8"?>
 2  <configuration>
 3    <system.serviceModel>
 4  
 5      <!--配置服務和終結點開始-->
 6      <services>
 7        <service>
 8          <endpoint></endpoint>
 9        </service>
10      </services>
11      <!--配置服務和終結點結束-->
12  
13      <!--配置綁定開始-->
14      <bindings>
15        <netTcpBinding>
16          <binding>
17          </binding>
18        </netTcpBinding>
19      </bindings>
20      <!--配置綁定結束-->
21  
22      <!--配置行為開始-->
23      <behaviors>
24        <serviceBehaviors>
25          <behavior>
26          </behavior>
27        </serviceBehaviors>
28      </behaviors>
29      <!--配置行為結束-->
30  
31    </system.serviceModel>
32  </configuration>

  Service配置節[必須有]:配置服務、接口和終結點。每個Service都會有以下兩個屬性。name:名稱空間.類名[服務的具體實現類]。behaviorConfiguration:一個在behaviors節點中找到的名稱。

  Binding配置節[可有可無]:配置綁定,如http,tcp等

  Behavior配置節[可有可無]:配置行為,如認證等。

三、實例

 1 <?xml version="1.0"?>
 2 <configuration>
 3   <system.serviceModel>
 4 
 5     
 6     <!--服務-->
 7     <services>
 8       <!--name:名稱空間.類型名-->
 9       <!--behaviorConfiguration:behavior的名稱,請看behavior配置節的名稱-->
10       <service name="WCFLibrary.User" behaviorConfiguration="MyBehavior">
11         <host>
12           <baseAddresses>
13             <!-- 每種傳輸協議的baseAddress,用於跟使用同樣傳輸協議Endpoint定義的相對地址組成完整的地址, 14  每種傳輸協議只能定義一個baseAddress。HTTP的baseAddress同時是service對外發布服務說明頁面的URL -->
15             <add baseAddress="http://localhost:8732/Design_Time_Addresses/WCFLibrary/Service/"/>
16           </baseAddresses>
17         </host>
18         <!-- 除非完全限定,否則地址將與上面提供的基址相關,每個服務可以有多個Endpoint -->
19         <!-- Address:指定這個Endpoint對外的URI,這個URI可以是個絕對地址,也可以是個相對於baseAddress的 20  相對地址。如果此屬性為空,則這個Endpoint的地址就是baseAddress-->
21         <!--bindingConfiguration:binding的名稱,請看binding配置節的名稱-->
22         <endpoint address="" binding="wsHttpBinding" contract="WCFLibrary.IUser" bindingConfiguration="myHttpBinding">
23           <identity>
24             <dns value="localhost"/>
25           </identity>
26         </endpoint>
27         <!-- 此終結點不使用安全綁定,應在部署前確保其安全或將其刪除-->
28         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
29       </service>
30     </services>
31 
32     
33     <!--綁定-->
34     <bindings>
35       <wsHttpBinding>
36         <binding name="myHttpBinding">
37           <security mode="None">
38             <message clientCredentialType="Windows" />
39           </security>
40         </binding>
41       </wsHttpBinding>
42     </bindings>
43 
44     
45     <!--行為-->
46     <behaviors>
47       <serviceBehaviors>
48         <behavior name="MyBehavior">
49           <!-- httpGetEnabled - bool類型的值,表示是否允許通過HTTP的get方法獲取sevice的WSDL元數據 -->
50           <serviceMetadata httpGetEnabled="True"/>
51         </behavior>
52       </serviceBehaviors>
53     </behaviors>
54     
55   </system.serviceModel>
56 </configuration>

四、版權

  轉載請注明出處:http://www.cnblogs.com/iamlilinfeng


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM