建立WCF客戶端

2022-07-16 06:18:07 字數 1465 閱讀 4920

服務既然已經發布,接下來我們就需要有乙個客戶端來訪問這個服務了。

搭建wcf的客戶端,最重要就是要遵循服務端的契約,客戶端通過**(proxy)來訪問服務端點,而並不關心服務端的具體實現。**要做的就是通過與服務端確認通訊協議,並通過通道(channels)交換資料。在服務端,servicehost會為每個端點建立乙個通道偵聽器,由偵聽器產生通道。而客戶端**則產生乙個通道發生器,產生客戶端通道。只有在服務端通道和客戶端通道一致的情況下,雙方才允許進行通訊。通道會對通訊過程進行監控,保障通訊的安全性。

為了簡單的完成乙個wcf客戶端,微軟為我們準備了乙個小工具,就是service model metadata utility。這個工具能幫你快速的從服務位址中生成客戶**和配置檔案。我們還是以前一篇的例子來演示。

首先允許伺服器端程式,等服務啟動後。在vs2008命令列視窗中輸入如下命令:svcutil.exe http://localhost:8080/mywcf

回車。從上面畫面中可以看到,wcf為客戶端生成了乙個客戶**類temperatureservice.cs和乙個配置檔案output.config。客戶端只需要整合這兩個檔案就可以與服務端通訊了。我們來看看這兩個檔案的內容:temperatureservice.cs, 從這個檔案可以看到,客戶端實際上是繼承了兩個介面,system.servicemodel.clientbase

和icontract。其中icontract是服務端契約的介面。 output.config檔案則定義了和服務端匹配的endpoint。

有了這兩個檔案,最後要做的事情就是將其整合到客戶端程式中,其步驟如下:

2)另外在方案中再新增乙個類庫專案,專案名稱叫mywcf.clientbase,為專案新增system.servicemodel的引用,類名改為clientbase。將temperatureservice.cs檔案中的**拷貝到clientbase中的命名空間引用下。

4)在專案mywcf.client的main方法中新增如下**。

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace mywcf.client

度!",result);

console.readline();}}

}5)客戶端**編寫完成,此時請首先執行服務端的mywcf.hosting專案,將服務端啟動。

6)回到客戶端的mywcf.client專案,按ctrl + f5執行程式。

至此,客戶端已成功從服務端獲得資料。我們再來看看客戶端的架構。

由此可見,客戶端由兩部分組成,一是用於同服務端確認通訊的**層mywcf.clientbase,二是客戶端的業務邏輯層mywcf.client。實際上,只要服務端確定後,我們就可以使用工具輕鬆的生成客戶端架構。當然,這只是wcf的乙個最為簡單的示例,目的是使大家對wcf的各個部件有乙個大致的了解,對架構有乙個簡單認識。

WCF客戶端建立

1 客戶端體系結構 建立客戶端 有2種方法 1 通過生成的 建立 程式 2 通過通道工廠channelfactory物件來建立 程式 2 channelfactory 建構函式 屬性 credentials 憑證 通過工廠建立的通道,返回客戶端與服務端點通訊時使用的憑證 endpoint 返回通道通...

WCF測試客戶端

wcf測試客戶端 wcf test client 是乙個用來測試wcf服務程式的除錯工具,能夠使開發wcf服務更加方便。本文主要討論如何在visual studio中啟用wcf測試客戶端的相關技巧。在visual studio之外開啟wcf測試客戶端有兩種方法 第一種方法是到其所在路徑 visual...

wcf客戶端捕獲異常

直接使用exception進行捕獲,然後在監視器中檢視具體是哪乙個異常 檢視stacktrace server stack trace 在 system.servicemodel.channels.securitychannelfactory 1.securityrequestchannel.pro...