wcf是dotnet體系中很重要的一項技術,但是組內很多組員通過書籍自學的時候感覺涉及面太廣、配置檔案太複雜,新名詞太多、抓不到頭緒,有感於此,決定進行一次組內技術培訓,順便把培訓講義整理到blog上來。不求大而全,而是要讓初學者快速入門,因此想入例項入手,並刻意隱藏一些初期用不到的內容,以降低入門門檻。有任何錯誤歡迎指正。
注:本系列文章基於.net framework 3.5,以教程的最後會歸納一下到了4.0中有哪些差異。
----------------------- 分隔線 -----------------------
第一篇:入門,構建第乙個wcf程式
1、服務端
using system;using system.servicemodel;
using system.text;
namespace server
///
/// 用servicecontract來標記此介面是wcf的服務契約,可以像webservice一樣指定乙個namespace,如果不指定,就是預設的
///
[servicecontract(namespace="wcf.demo")]
public
inte***ce idata
///
/// 用operationcontract來標記此方法是操作契約
///
[operationcontract]
string sayhello(string username);
針對這個介面建立實現類,這個類才是真正幹活的,工作在服務端,不出現在客戶端:
using system;using system.text;
namespace server
///
/// 實現idata介面,此處不需要寫契約標記
萬事具備,只剩最後一步了,將服務發布出去:
using system;using system.servicemodel;
namespace server
class program
static
void main(string args)
//定義乙個servicehost,注意引數中要使用契約實現類而不是介面
using(servicehost host = new servicehost(typeof(server.dataprovider)))
host.open();
console.writeline("service running ...");
console.readkey();
host.close();
有人可能會問服務發布到哪去了?沒指定位址呀?這是乙個初學者容易搞不明白的地方。
編譯執行,螢幕顯示service running ... 就是正常跑起來了,此時如果用命令列 netstat -ano | findstr "8080" 看一下,應該有如下輸出:
tcp 0.0.0.0:8080 0.0.0.0:0 listening 4tcp [::]:8080 [::]:0 listening 4
表示我們的程式已經在tcp 8080埠開始監聽了。值得注意的是pid是4,這是系統程序而不是我們自己的程序,這說明wcf程式對外提供http服務時,是借用了系統功能(http.sys)。
此時如果我們用瀏覽器訪問一下 http://localhost:8080/wcf,不報錯,但是會提示「當前已禁用此服務的元資料發布」,這是由於預設不允許以http get方式獲取服務的wsdl,我們不用管它,不影響後面的使用,以後的章節中我們再來看這個問題。
2、客戶端
然後寫**,來呼叫server端發布的sayhello方法:
using system;using system.servicemodel;
using system.servicemodel.channels;
namespace client
class program
static
void main(string args)
//客戶端訪問有多種方式,此處只顯示一種
var proxy = new channelfactory("dataservice").createchannel();
//呼叫sayhello方法
console.writeline(proxy.sayhello("wcf"));
//用完後一定要關閉,因為服務端有最大連線數,不關閉會在一定時間內一直佔著有效連線
((ichannel)proxy).close();
} 編譯執行,螢幕應能正常列印出「hello wcf.」。
WCF簡單教程 1 入門
wcf是dotnet體系中很重要的一項技術,但是組內很多組員通過書籍自學的時候感覺涉及面太廣 配置檔案太複雜,新名詞太多 抓不到頭緒,有感於此,決定進行一次組內技術培訓,順便把培訓講義整理到blog上來。不求大而全,而是要讓初學者快速入門,因此想入例項入手,並刻意隱藏一些初期用不到的內容,以降低入門...
WCF入門教程1 WCF簡要介紹
什麼是wcfwindowscommunication foundation wcf 是由微軟 開發的一系列支援資料通訊的應用程式框架,可以翻譯為windows 通訊開發平台。整合了原有的windows通訊的 net remoting,webservice,socket的機制,並融合有http 和ft...
WCF入門教程 WCF基礎知識問與答
3 為什麼我們要選用wcf?在windows平台下,尤其是在.net平台下開發面向服務的應用程式,或者開發分布式系統,最佳選擇就是wcf。為什麼呢?原因就在於wcf涵蓋了之前微軟推出的所有用於分布式開發的技術,包括remoting web services wse msmq等,並以一種統一的程式設計...