WCF開發入門的六個步驟
在這裡我就用一個據於一個簡單的場景:服務端為客服端提供獲取客戶資訊的一個介面讀取客戶資訊,來完成WCF開發入門的六個步驟。
1. 定義WCF服務契約
A. 專案引用節點右鍵新增System.ServiceModel引用。
B. 在程式碼檔案裡,新增以下名稱空間的引用
using System.ServiceModel;
using System;
C. 新建一個命為ICustomerService 介面,並新增一個獲取客戶資訊的方法定義名為CustomerInfomation,返回字串型別的客戶資訊。
D. 為介面ICustomerService新增ServiceContract的屬性修飾使它成為WCF服務中公開的介面。
E. 為方法CustomerInfomation新增OperationContract的屬性修飾使它成為WCF服務公開介面中公開的成員。
F. 程式碼:
1 using System;
2
3 using System.ServiceModel;
4
5 namespace ConWCF
6
7 { [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
8
9 public interface CustomerService
10
11 {
12
13 [OperationContract]
14
15 String CustomerInformation();
16
17 }
18
19 }
20
2. 實現WCF服務契約
實現WCF服務契約很簡單,就是實現上一步聚定義的WCF服務契約定義的介面就可以。下面看程式碼
1 using System;
2
3 using System.ServiceModel;
4
5 namespace ConWCF
6
7 { [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
8
9 public interface ICustomerService
10
11 {
12
13 [OperationContract]
14
15 String CustomerInformation();
16
17 }
18
19 public class CustomerService:ICustomerService
20
21 {
22
23 #region ICustomerService 成員
24
25 public string CustomerInformation()
26
27 {
28
29 return "這是客戶的資訊!";
30
31 }
32
33 #endregion
34
35 }
36
37 }
38
39
3. 啟動WCF服務
A.新增一個應用程式配置檔案,檔案件名為App.config。
B.配置WCF服務的基本地址,如下所示
contract="ConWCF.ICustomerService" />
D.配置檔案
E.啟動服服就簡單了
ServiceHost host = new ServiceHost(typeof(CustomerService));
host.Open();
Console.WriteLine("客戶資訊服務已啟動");
Console.WriteLine("按任意鍵結束服務!");
Console.Read();
host.Close();
F.當服務啟動時,在IE欄中輸入: http://localhost:8000/conwcfr,將會收到一些幫助的提示資訊。
G.異常:配置檔案中的服務名稱一定是:名稱空間.實現WCF服務契約類的名稱,否則將會發生找到不配置的異常。
name="ConWCF.CustomerService"
異常資訊: Service 'ConWCF.CustomerService' has zero application (non-infrastructure) endpoints. This might be because no configuration file was found for your application, or because no service element matching the service name could be found in the configuration file, or because no endpoints were defined in the service element.
這個異常搞得我昏了半天,害得我以為從IIS、埠到配置環境排除錯誤,就是搞不明白為什麼會跟類的命稱聯絡起來。不過,最終也解決了。
4. 建立一個基本的WCF客服端
WCF服務端建立好啊,建立客戶端就容易多了,直接用SVCUTIL 命令列工具去完成程式碼的生成。我安裝了WINDOWS SDK,其帶了一個CMDShell 命令列工具,開啟後就可以執行SVCUTIL命令,這個命令是執行於 framework 3.0以上環境。檢視詳細幫助資訊可以輸入:svcutil /?,回車。
1. 啟動上幾步驟建立好的WCF服務端。
2. 在CMDShell工具中用CD 轉到你要存放客戶端程式碼的目錄下,輸入以下命令生成程式碼和配置檔案。
D:"client>svcutil /language:c# /out:CustomerClient.cs /config:app.config http:/
/localhost:8000/conwcfr
上面命令指定了要生成程式碼的語言,程式碼檔案和配置檔名,WCF服務端地址,注意執行命令時必須確定WCF服務端正在執行中。
5. WCF客服端基本配置
WCF客戶端配置就是配置呼叫WCF服務端的協議,輸傳寬頻,服務地址,安全等等資訊。下面就上一步驟命令自動生成的配置檔案。
1
2
3
4
5
6
8 bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
9 maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
10 messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
11 allowCookies="false">
12
14
16
17
19
21
22
23
24
25
26
28 name="WSHttpBinding_ICustomerService">
29
30
31
32
33
34
35
6. 使用WCF客戶端
在客戶端專案中專案引用節點右鍵新增System.ServiceModel引用.
新增第四部中建立的客戶端程式碼檔案和配置檔案。
客戶端呼叫服務端的服務,只要建立生成客戶端類的例項就可呼叫了,但要確認服務端正在起用狀態,如下
1using System;
2
3namespace ConWCFCustomerClient
4
5{
6
7 class Program
8
9 {
10
11 static void Main(string[] args)
12
13 {
14
15 CustomerServiceClient client = new CustomerServiceClient();
16
17 string message=client.CustomerInformation();
18
19 Console.WriteLine(message);
20
21 Console.Read();
22
23 }
24
25 }
26
27}
- 游龍的專欄 - CSDNBlog
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-281018/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- app開發的幾個步驟APP
- C# WCF入門C#
- 制定雲戰略的六個步驟
- Python開發的入門教程(六)-函式Python函式
- spring 程式開發步驟Spring
- 新媒體如何學習?五個步驟讓你快速入門!
- 大資料開發過程中的5個通用步驟大資料
- 驅動程式開發步驟
- NodeJS入門(一)---nodejs詳細安裝步驟NodeJS
- 六西格瑪企業:從困惑到成功的11個步驟!
- 成為傑出Java開發人員的10個步驟 - DZoneJava
- 無基礎也只需四個步驟就能入門詳情頁的設計教程!
- 【經驗】學習android開發的步驟Android
- 基於以太坊的Token開發步驟
- 手機app開發的基本流程步驟APP
- Python入門塔防小遊戲,開發步驟和原始碼,帶你輕鬆學pythonPython遊戲原始碼
- 盲盒小程式開發步驟
- Git 快速入門:全面瞭解與安裝步驟Git
- 大資料開發過程中的5個學習通用步驟大資料
- vnc安裝步驟,4個在Linux下vnc的個安裝步驟VNCLinux
- 詳解資料處理的六步驟
- Java開發中的工作流程和步驟Java
- 系統開發的步驟有以下幾點
- 前端開發入門到實戰:六種組織CSS的方式前端CSS
- 原生(iOS)與Flutter混合開發步驟iOSFlutter
- JS開發步驟學習筆記JS筆記
- 現階段實踐“拿著錘子找釘子”的六個步驟
- 資料分析六個步驟,一款BI工具即可全部搞定
- 搭建高效雲的七個步驟
- hadoop零基礎入門教程--DKHadoop完整安裝步驟Hadoop
- 輸入測試報告的步驟測試報告
- [譯] 制定良好的路線圖:產品負責人的六個實施步驟
- Masonite 熟悉步驟小記錄 (六、文章展示)
- 開發者談論出品一款價值遊戲的五個步驟遊戲
- 搭建個人Huginn步驟
- Python和前端開發哪個更好入門?Python前端
- 小白剛入門Python,學完基礎後,接下來的學習步驟!Python
- 三個步驟,從零開始快速部署LoRaServerServer
- 小白福利篇,直播APP開發的6條基本步驟APP