WCF服務開發與呼叫的完整示例

2022-08-29 04:18:11 字數 3617 閱讀 3428

wcf服務開發與呼叫的完整示例

開發工具:vs2008

開發語言:c#

開發內容:簡單的許可權管理系統

第一步、建立wcf服務庫

點選確定,將建立乙個wcf 服務庫示例程式,自動生成乙個包括iservice1.cs和service1.cs兩個類檔案。我們可以直接對其修改開發我們的服務,但一般直接刪除。

第二步:開發實體類

在解決方案中,新增新類module.cs

在類中要首先引入using system.runtime.serialization命名空間

實體類具體**如下:

namespace wcfservicelib.model

}為使在wcf服務被呼叫過程中科被序列化,在實體類前加[datacontract]標籤,實體類每個成員前加[datamember]標籤

第三步:建立wcf服務介面

wcf服務要對外提供服務,需要建立服務的介面,宣告對外服務的內容。

在解決方案中新增新的介面類imoduleservice.cs,然後引入名門空間using system.servicemodel;

具體**如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.servicemodel;

using wcfservicelib.model;

namespace wcfservicelib.iservice

}介面類前要加[servicecontract]標籤,每個成員前要加[operationcontract]標籤,標籤的作用是保證外部呼叫可以訪問到該方法。

第四步:介面類的實現

實現第三步中宣告的介面類,只有這樣wcf服務才會正在提供服務。

在解決方案中新增介面實現類moduleservice,引入命名空間using system.servicemodel;

具體**如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using wcfservicelib.iservice;

using system.servicemodel;

using wcfservicelib.model;

namespace wcfservicelib.service

public module getmodulebyid(string id)

public void removemodule(string id)

public void moduleupdate(module module)

#endregion

}

}到此為止,wcf服務的主體就開發完成了,那麼如何才可以讓呼叫者使用這個服務呢?我們就需要吧wcf服務註冊並發布一下。

第五步:wcf服務發布

在vs2008以上的版本中都提供了對wcf服務視覺化註冊和發布的工具。

出現如下介面:

可以看到有兩個終結點,第乙個是服務節點,第二個是元資料節點。由於我們是用vs自帶的服務庫專案來建立的,配置檔案中還沒有刪除這些資訊,所以第乙個節點裡還保留著自帶的服務資訊iservice.下面我們把這個服務更改為我們上文編寫的服務的資訊。

單擊左側的「services」-「services.service1」在右側的name,彈出「服務型別瀏覽器」對話方塊,在此型別中我們找到此wcf服務專案編譯出來的dll檔案,雙擊它就可以出現此服務中的對外公布的服務,點選選中它單擊確定。

然後,我們展開左側 「services」->「wcfservicelib.service.moduleservice」->「endpoints」,單擊第乙個「empty name」,從右邊的「emptyproperties」中的contract中我們可以看到,這裡的contract仍然用的是 services.iservice1。按照上文的步驟在走一遍,找到dll後確定。

最後關閉配置視窗,儲存。

到此為止,服務就開發並發布完成了。接下來我們將wcf進行託管後就可以使用了。wcf服務託管有三種方式,最常用的是iis託管。我們看一下wcf服務是如何進行iis託管的。

第六步:wcf服務iis發布

1、在解決方案上右鍵新增**,型別選擇wcf服務。

3、然後新增對wcf服務庫專案的引用。結果如下:

4、然後修改service.svc檔案,**如下:

5、在web.config上右擊選擇「編輯wcf配置」。

關閉wcf編輯工具,儲存即完成了服務的發布配置。

6、在service.svc上右擊,選擇「在瀏覽器中檢視」,在ie中執行此服務。

7、在iis中部署站點,建立虛擬目錄指向該站點。然後瀏覽介面如下。

到此,wcf服務在iis中託管成功。接下來,我們看一下如何使用wcf服務。

第七步:wcf服務的使用

1、新建asp.net應用程式

2、右鍵點選「引用」--->新增服務引用

新增成功後,解決方案中檔案如下:

3、後台呼叫wcf服務,**如下:

protected void page_load(object sender, eventargs e)

}

4、執行程式,出現如下呼叫結果,呼叫成功。

Wcf 可配置的服務呼叫方式

通常,如果採用.net的wcf技術來架構soa風格的應用,我們會把專案做一些基本的分層,如上圖 01.contract層 通常定義服務的介面 即服務契約servicecontract,指明該服務提供了哪些方法可供外部呼叫 以及介面方法中傳輸的model定義 即 資料契約datacontract,指明...

呼叫mpfr的一段示例(極不完整)

char buffer 2048 mp exp t e unsigned int i mpfr t s,t,u mpfr init2 t,200 mpfr set d t,1.0,gmp rndd mpfr init2 s,200 mpfr set d s,1.0,gmp rndd mpfr ini...

客戶端動態呼叫WCF服務中的方法

客戶端呼叫wcf 有時需要動態的呼叫服務端的wcf中的方法,本方法,反射wcf 的介面,動態呼叫介面中的方法。主要為,動態繫結,反射動態呼叫。public static object executemethod string purl,string pmethodname,params object...