怎麼理解Wcf應用程式間通訊

2021-06-27 16:15:02 字數 3792 閱讀 5216

使用了iis

做為宿主,客戶端呼叫

wcf服務的是

web應用程式。今天這個小節主要以介紹

wcf中傳輸的配置為主,我們把上一節的內容稍做改動,以體現出

"endpoint"與"a

、b、c"

。 由於我在教程一裡沒有手寫任何配置的**,

client

與service

端的web.config

都是自動生成的,當我們新增服務引用時

,ide

自動將客戶端的配置檔案中

endpoint

與引用的服務的

endpoint

匹配了。如下**所示:

客戶端web.config:

服務端web.config

**: 1

<?xml version=

"1.0"

encoding=

"utf-8"

?>2

3 4

5"true"

targetframework=

"4.0"

/>6

7 8

9 10

11 12"true"

/>13

14"false"

/>

1516

1718

"true"

/>19

20 21"true"

/>22

23 24

由上面的兩個配置檔案我們發現,客戶端

system.servicemode

節點有我們剛才講的

endpoint

,而服務端為什麼沒有?這不是和我們剛才講的有違背嗎?好吧,我們承認

ide生成的

web.config

中endpoint

很隱晦。那麼我們看下面手工修改後

[把對看起來很複雜並且對當前的學習無用的配置節刪掉

]的配置檔案的**

(我將服務端和客戶端放在一塊了):

修改配置檔案後我們執行下,發現

wcf服務依然執行成功!!這次的配置檔案夠明顯了吧,不論是在服務端還是在客戶端,

endpoint中的a

、b、c

都是完全一樣的。也就是終結點完全匹配!

那麼第一次的配置檔案為什麼能執行呢?答案是我們把

wcf寄宿在

iis上,而

iis預設監聽的就是

協議[b

確定了]

並且位址也是相對於

iis上的檔案位址

[a確定了

],合同更不用說了,找到

user.svc

什麼都有了

[c確定了

],所以在服務端就沒有必要顯示的寫出

system.servicemodel

,不信你試試,把服務端的配置檔案中

system.servicemodel

節刪除,程式一樣可以執行!伺服器端的

endpoint

確定了,客戶端的

endpoint

自然要和服務端去對應,所以

ide在生成客戶端的配置檔案裡

endpoint

寫的很詳細的,而服務端卻沒有

endpoint。

應用程式間通訊 URL Scheme

ios 的設計思路是原則上禁止不同的應用程式之間相互訪問彼此的資料。雖然對於像我這樣的桌面應用開發人員而言,不能訪問程式以外的資料是不能想象的。但是從安全角度來說不失為乙個有效的策略。不過凡事總有例外,所以賈伯斯還是為程式間通訊開放了幾個介面。ios 上的應用程式可以通過向其它應用程式傳送乙個url...

WCF應用程式的程式集劃分

wcf tips之二 wcf應用程式通常屬於分布式的soa方案。為了體現服務契約的特點,有必要在設計wcf應用程式時,注意程式集的劃分。原則上,我們需要將服務契約 資料契約 服務實現分為單獨的三個程式集,這樣可以在一定程度上解除服務契約與服務實現的耦合,也便於對資料契約物件的管理。更重要的是,wcf...

Linux 應用程式,程序間通訊彙總(IPC)

程序間通訊方式 1.通訊 管道 fifo,訊息佇列,共享記憶體,socket uds 管道一般用於有有親屬關係的程序間進行通訊。核心自動處理管道的同步問題。管道通訊資料為流模型,不能區分不同時間傳送的兩條訊息。可以定長傳送每條資料,或者定義訊息分隔符。fifo相對於管道,多了路徑名,任意程序都可訪問...