WCF開發步驟

2021-06-07 02:04:08 字數 3180 閱讀 3962

1. 開發服務(service)

(1)新建wcf服務應用程式

wcf是.net3.0新增的,如果要在visual studio 2005下開發wcf應用程式,需要安裝visual studio 2005 extensions for wcf and wpf才可以支援。visual studio 2008 和 2010 由於包含了.net3.0,所以,它直接支援建立wcf服務專案。

(2)定義wcf服務契約

新建wcf服務應用程式後,系統會自動生成iservice1.cs檔案,如下**所示。它是服務契約介面檔案。服務要實現的操作可以通過介面來定義。(將紅體部分修改為自己的業務**)

using system;

using system.collections.generic;

using system.linq;

using system.runtime.serialization;

using system.servicemodel;

using system.text;

namespace wcfservice1

// 使用下面示例中說明的資料約定將復合型別新增到服務操作。

[datacontract]

public classcompositetype

set

}[datamember]

public string stringvalue

set }}

}服務契約需要用 [servicecontract]屬性定義,使它成為wcf服務中公開的介面。

服務定義的操作方法用 [operationcontract] 屬性定義,使它成為wcf服務公開介面中公開的成員。

實體類compositetype是通過服務傳送的復合型別的資料契約定義的,有[datacontract]和[datamember]屬性定義。

(3)實現wcf服務契約

服務實現,其實就是對契約(介面)的實現,繼承介面並實現方法。(下面**是系統自動生成的,把紅色部分改為自己的**)

using system;

using system.collections.generic;

using system.linq;

using system.runtime.serialization;

using system.servicemodel;

using system.text;

namespace wcfservice1

", value);

}public compositetype getdatausingdatacontract(compositetype composite)

return composite;}}

}重新編譯wcf服務應用程式,會發現wcfservice1\bin 的目錄下生成了wcfservice1.dll,說明剛才我們建立的wcf服務應用程式其實是個類庫專案。

2. 建立宿主程序(host)

要想使wcf服務執行,需要宿主程序(host)。即wcf服務不可能憑空存在。每個wcf服務必須託管(hosting)在windows程序中,該程序就稱為宿主程序(host process)。宿主可以由iis提供,也可以由windows form程式或windows服務提供,或者console控制台程式也可以。

下面以windows form程式為示例進行講解,其他方法基本類似。具體步驟:

(3)新增引用:system.servicemodel;

<?xml version="1.0" encoding="utf-8" ?>

整個wcf配置是用system.servicemodel元素定義的。

服務用元素定義,包括乙個指定契約的元素,契約的值是指定了[servicecontract]屬性的介面的名稱,包括介面的命名空間,如contract="wcfservice1.iservice1"。屬性binding指定了繫結資訊定義了由服務使用的協議,"wshttpbinding"代表了wcf服務使用的是http協議。

元素定義了服務的位址,服務可以用http://localhost:8000/定址。

(5)啟動服務

執行該宿主程式,單擊「啟動服務」按鈕在ie瀏覽器欄中輸入:http://localhost:8000/,將會看到下圖所示的服務提示資訊。

3. 建立wcf客戶端

若要呼叫wcf服務的操作,則客戶端首先需要匯入服務契約到客戶端本地描述(native representation)中。如果客戶端使用wcf,則呼叫操作的常見做法是使用**。**是乙個clr類,它公開了乙個單獨的clr介面用以表示服務的契約。**完全封裝了服務的每乙個方面:服務的位置、實現技術、執行時平台及通訊傳輸。

(1)生成**類和配置檔案

方式一:直接新增服務引用,如下圖

新增服務引用時必須確定wcf服務端正在執行中,否則位址無法訪問。

方式二:通過命令列工具svcutil.exe生成**。

我們知道web service是通過wsdl對外提供服務的描述,以便客戶端能夠通過wsdl知道這個web service所包含的方法、方法的簽名等資訊,客戶端通過wsdl就能知道怎麼去呼叫這個web service。

到了wcf,微軟依然採用wsdl來提供wcf服務描述。

前面服務端宿主程式的配置,新增了乙個 ,目的就是讓服務端對外提供wsdl形式的服務metadata描述。

微軟也提供了secutil.exe工具來通過wsdl生成客戶端**類和契約配置檔案。

選擇選單「開始」--->「microsoft visual 2008」--->"visual studio tools"--->"visual studio 2008命令提示"命令。啟動vs2008的命令列視窗。

該命令指定了要生成**的語言、**類**檔案和配置檔名,以及wcf服務端的位址。

命令執行時必須確定wcf服務端正在執行中。

(2)使用wcf客戶端呼叫服務

通過以上兩種方法產生的**類,我們就很輕鬆地就像使用本地方法一樣地呼叫wcf服務方法了,這一點基本上和呼叫web service 相同。

WCF簡單步驟

記錄乙個 內容對我有點深,以後可能有用。一 vs2008解決方案下新增 新建專案 wcf wcf服務庫 一般在這裡定義服務契約 資料契約,並實現。二 發布到iis上 vs2008解決方案下新增 新建 wcf服務 會有svc檔案和web.config檔案,要進行修改 然後 發布 記得在iis要讓其支援...

WCF 定義服務契約詳細步驟

wcf windows communication foundation 是一系列支援資料通訊的應用程式框架。定義服務契約步驟 1 新建類庫,並引入程式集的system.servicemodel 2 建立介面,定義服務契約,操作 using system using system.collectio...

Wcf 開發日記 1

序 這篇日記是記錄我在開發 wcf中所遇到的問題,以及解決的方法。這個專案並不是乙個從零開發的專案,某種程度上可以被看作是從 2層架構到 3層的遷移。其中遇到了很多問題,包括技術的和非技術的。這些都將會被我一一記錄。這些經驗和技術實踐可以被用作 soa專案的參考。專案的總覽 wcf和 wpf都是 m...