WCF筆記 入門

2021-09-03 00:11:37 字數 4419 閱讀 2205

wcf的中的endpoint結構,乙個endpoint就類似於xml web service中的乙個asmx檔案,它包括三個組成部分1)address 2) binding 3) contract,此三者被稱為組成endpoint的"abc".

a解決了endpoint在哪的問題,也就是"where is the endpoint?"

b 解決的是如何與endpoint通訊的問題,也就是"how to communicate with endpoint?"

c解決了endpoint提供什麼功能的問題,也就是"what functionalities do the endpoint provide?"

選擇正確的binding

binding是可以自定義實現的,可wcf框架已經為我們實現了足夠多的binding,供我們來選擇,如下表所示:

binding名稱

configuration element

描述

乙個安全的通用的binding,但它不能在deplex中使用

乙個安全的通用的binding,但能在deplex中使用

乙個安全的通用的支援wsf的binding,能對使用者進行驗證和授權

nettcpbinding

nettcpbinding

在wcf應用程式中最適合跨機器進行安全通訊的binding

netnamedpipebinding

netnamedpipebinding

在wcf應用程式中最適合本機進行安全通訊的binding

netmsmqbinding

netmsmqbinding

在wcf應用程式中最適合跨機器進行安全通訊的binding,並且支援排隊

netpeertcpbinding

netpeertcpbinding

乙個支援安全的,多機互動的binding

msmqintegrationbinding

msmqintegrationbinding

乙個用於wcf與現有msmq程式進行安全通訊的binding

下面的**分別刪除了上表中的binding在互操作性(interoperability), 安全性(security), 是否支援會話(session), 是否支援事務(transactions)和是否為全雙工(duplex)上不同。

例外,《programming wcf services》有一幅圖也能說明各自的特徵:

下面的圖給出了我們選擇binding的方式

第乙個簡單的例子:

介面:

using system;

using system.collections.generic;

using system.linq;

using system.runtime.serialization;

using system.servicemodel;

using system.text;

using system.threading;

namespace wcfservice1

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

[datacontract]

public class compositetype

set

}[datamember]

public string stringvalue

set }}

[datacontract]

public struct mynumber}}

類:using system;

using system.collections.generic;

using system.linq;

using system.runtime.serialization;

using system.servicemodel;

using system.text;

using system.threading;

namespace wcfservice1

", value);

}public compositetype getdatausingdatacontract(compositetype composite)

return composite;

}public mynumber getnum(mynumber mynum)

", datetime.now);}}

}呼叫:

//方法二

service1client o = new service1client();

console.writeline("start:", datetime.now);

console.writeline("end:", datetime.now);

console.writeline("", o.getdata(1));

console.readline();

o.close();}}

}

ZMQ筆記 入門

入門例子 只要包含 apt get install libzmq3 dev hello world server in c binds rep socket to tcp 5555 expects hello from client,replies with world include includ...

LESS學習筆記 入門

今天在網上完成了less的基礎學習,下面是我的學習筆記。總共有三個檔案 index.html main.less mian.css,其中mian.css是main.less經過koala編譯之後自動生成的。下面是 index.html mian.less charset utf 8 body div...

Yii學習筆記(入門)

use yii db activerecord class a extends activerecord hello,i am only page.1 初始化應用 訪問http localhost basic web index.php,進入yii的啟動頁面。如果提示你未安裝openssl的話,去你...