wcf 入門示例

2022-08-01 00:51:09 字數 3968 閱讀 4997

剛開始學習wcf,根據官方**的說明寫下的**

建立乙個類庫專案gettingstartedlib,首先新增wcf引用system.servicemodel; 新增介面icalculator,新增類calculatorservice實現介面icalculator

**:icalculator

using

system;

using

system.collections.generic;

using

system.linq;

using

system.servicemodel;

using

system.text;

using

system.threading.tasks;

namespace

gettingstartedlib

}

**:calculatorservice

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

gettingstartedlib,)"

, n1, n2);

//輸出結果到控制台

console.writeline("

結果:

", result);

return

result;

}public

double subtract(double n1, double

n2) ,)

", n1, n2);

console.writeline(

"結果:

", result);

return

result;

}public

double multiply(double n1, double

n2) ,)

", n1, n2);

console.writeline(

"結果:

", result);

return

result;

}public

double divide(double n1, double

n2) ,)

", n1, n2);

console.writeline(

"結果:

建立服務啟動程式,這個建立乙個控制台應用程式gettingstartedhost,首先新增wcf引用system.servicemodel,新增gettingstartedlib類庫的引用。

**:gettingstartedhost

using

gettingstartedlib;

using

system;

using

system.collections.generic;

using

system.linq;

using

system.servicemodel;

using

system.servicemodel.description;

using

system.text;

using

system.threading.tasks;

namespace

gettingstartedhost

catch

(communicationexception ce)

", ce.message);

selfhost.abort();}}

}}

建立控制台應用程式gettingstartedclient,首先新增引用system.servicemodel,和gettingstartedlib類庫

**:gettingstartedclient.program

using

gettingstartedclient.servicereference1;

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

gettingstartedclient

,) =

", value1, value2, result);

//請求減法操作.

value1 = 145.00d

; value2 = 76.54d

; result =client.subtract(value1, value2);

console.writeline(

"subtract(,) =

", value1, value2, result);

//請求乘法操作.

value1 = 9.00d

; value2 = 81.25d

; result =client.multiply(value1, value2);

console.writeline(

"multiply(,) =

", value1, value2, result);

//請求除法操作.

value1 = 22.00d

; value2 = 7.00d

; result =client.divide(value1, value2);

console.writeline(

"divide(,) =

", value1, value2, result);

//step 3:關閉服務

client.close();}}

}

這裡建立好客戶端程式還是不可以使用,需要與wcf服務新增到客戶端,我是通過vs的命令列工具 切換到客戶端的專案目錄輸入:

,最後會自動生成引用檔案。
介面:

啟動應用測試:首先啟動host程式,找到bin目錄開啟生成的.exe程式,啟動服務。然後開啟客戶端程式。

WCF入門(十一) WCF安全

乙個強大的wcf服務安全系統,擁有兩種安全模式或級別預期的客戶端可以訪問的服務。這是常見的分布式事務的安全威脅正在放緩,在很大程度上由wcf決定。wcf服務有四個主要的安全功能,如下圖所示。wcf提供以下傳輸安全模式,以確保在客戶機和伺服器之間的安全通訊。多樣傳輸安全模式如下所述。name wcfs...

WCF入門(四) WCF架構

wcf是乙個分層架構,為開發各種分布式應用的充分支援。該體系結構在下面將詳細說明。約定層旁邊就是應用層,並含有類似於現實世界的約定,指定服務和什麼樣的資訊可以訪問它會使操作的資訊。約定基本都是在簡短的討論如下四種型別。服務執行時層僅僅是約定層之下。它指定在執行時出現的各種服務行為。有許多態別的行為,...

WCF揭秘隨筆 Wcf入門感受

1.乙個比喻 看了wcf半天書,最後腦袋大的要命。最後自己想了乙個比喻,不知道恰當否。乙個只會英文美國人 不會日語漢語 乙個只會漢語的中國人 不會英語與日語 乙個只會日語的日本人 不會英語與漢語 3個人要溝通怎麼溝通呢?我讀遇見心想事成的自己的時候看到裡面有這麼個裝置,英國人帶著這樣乙個裝置,然後講...