剛開始學習wcf,根據官方**的說明寫下的**
建立乙個類庫專案gettingstartedlib,首先新增wcf引用system.servicemodel; 新增介面icalculator,新增類calculatorservice實現介面icalculator
**:icalculator
using**:calculatorservicesystem;
using
system.collections.generic;
using
system.linq;
using
system.servicemodel;
using
system.text;
using
system.threading.tasks;
namespace
gettingstartedlib
}
using建立服務啟動程式,這個建立乙個控制台應用程式gettingstartedhost,首先新增wcf引用system.servicemodel,新增gettingstartedlib類庫的引用。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
using建立控制台應用程式gettingstartedclient,首先新增引用system.servicemodel,和gettingstartedlib類庫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.program
using這裡建立好客戶端程式還是不可以使用,需要與wcf服務新增到客戶端,我是通過vs的命令列工具 切換到客戶端的專案目錄輸入: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();}}
}
,最後會自動生成引用檔案。
介面:
啟動應用測試:首先啟動host程式,找到bin目錄開啟生成的.exe程式,啟動服務。然後開啟客戶端程式。
WCF入門(十一) WCF安全
乙個強大的wcf服務安全系統,擁有兩種安全模式或級別預期的客戶端可以訪問的服務。這是常見的分布式事務的安全威脅正在放緩,在很大程度上由wcf決定。wcf服務有四個主要的安全功能,如下圖所示。wcf提供以下傳輸安全模式,以確保在客戶機和伺服器之間的安全通訊。多樣傳輸安全模式如下所述。name wcfs...
WCF入門(四) WCF架構
wcf是乙個分層架構,為開發各種分布式應用的充分支援。該體系結構在下面將詳細說明。約定層旁邊就是應用層,並含有類似於現實世界的約定,指定服務和什麼樣的資訊可以訪問它會使操作的資訊。約定基本都是在簡短的討論如下四種型別。服務執行時層僅僅是約定層之下。它指定在執行時出現的各種服務行為。有許多態別的行為,...
WCF揭秘隨筆 Wcf入門感受
1.乙個比喻 看了wcf半天書,最後腦袋大的要命。最後自己想了乙個比喻,不知道恰當否。乙個只會英文美國人 不會日語漢語 乙個只會漢語的中國人 不會英語與日語 乙個只會日語的日本人 不會英語與漢語 3個人要溝通怎麼溝通呢?我讀遇見心想事成的自己的時候看到裡面有這麼個裝置,英國人帶著這樣乙個裝置,然後講...