朋友炒股兩個月賺了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>
四、版權