成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF排隊調(diào)用由NetMsmqBinding支持

開發(fā) 開發(fā)工具
WCF排隊調(diào)用可以通過使用NetMsmqBinding來進行支持。那么具體的應(yīng)用方法將會在這篇文章中詳細給出,大家可以以此作為學(xué)習(xí)參考對象。

WCF中,有一種叫做WCF排隊調(diào)用的操作技術(shù),可以幫助我們在程序開發(fā)中實現(xiàn)一些特定分功能。那么在這里,我們就會對此做一個詳細的介紹,以方便大家在實際應(yīng)用中能夠獲得一些幫助。#t#

Windows Communication Foundation 使用 NetMsmqBinding 來支持WCF排隊調(diào)用。Windows Communication Foundation 在傳輸消息時不是通過 TCP 或 HTTP,而是通過 Microsoft® 消息隊列 (MSMQ)。客戶端也不是將 Windows Communication Foundation 消息發(fā)送到某個在線服務(wù),而是發(fā)送到 MSMQ 隊列。所有客戶端所面向和交互的對象是隊列,而非服務(wù)端點。因此,調(diào)用在本質(zhì)上是異步的、是不連接的。直到服務(wù)在將來某一時刻處理消息時,這些調(diào)用才得以執(zhí)行。

請注意,Windows Communication Foundation 消息并不直接映射到 MSMQ 消息。一個 MSMQ 消息可以包含一個或多個 Windows Communication Foundation 消息,具體個數(shù)視合約會話模式而定。對于必需會話模式,多個 Windows Communication Foundation 調(diào)用可共存于一個 MSMQ 消息中;而對于允許或不允許會話模式(由單調(diào)用和單例式服務(wù)使用),每個 Windows Communication Foundation 調(diào)用將位于單獨的 MSMQ 消息中。

如同各 Windows Communication Foundation 服務(wù)一樣,客戶端會與代理進行交互,如圖 1 所示。由于已將代理配置為使用 MSMQ 綁定,因而該代理不會向任何特定服務(wù)發(fā)送 Windows Communication Foundation 消息,而是將調(diào)用轉(zhuǎn)換為 MSMQ 消息,然后將這些消息發(fā)布到端點地址所指定的隊列中。

在服務(wù)端,當(dāng)具有排隊端點的服務(wù)主機啟動后,主機會安裝隊列偵聽程序。隊列偵聽程序會檢測到隊列中的消息并使其出隊,然后創(chuàng)建主機端以調(diào)度程序為終點的偵聽器鏈。調(diào)度程序會照例調(diào)用服務(wù)實例。如果客戶端向隊列發(fā)布了多個消息,偵聽程序會隨著消息的出隊創(chuàng)建新的實例,最終以異步、非連接的并發(fā)調(diào)用結(jié)束。

如果主機處于離線狀態(tài),消息將在隊列中保持待處理狀態(tài)。待下次主機上線時,消息會被轉(zhuǎn)發(fā)給服務(wù)。

面向隊列進行的、可能處于非連接狀態(tài)的調(diào)用不可能返回任何值,因為在將消息調(diào)度到隊列時并未調(diào)用任何服務(wù)邏輯。此外,調(diào)用可能會在客戶端應(yīng)用程序停止運行后被調(diào)度給服務(wù)進行處理,而這時客戶端根本無法處理返回的值。同樣,調(diào)用也無法將任何服務(wù)端異常返回給客戶端,而且也沒有客戶端用來捕獲和處理異常。由于客戶端不會因為調(diào)用操作而被封鎖,更確切地說,客戶端只有在將消息送去排隊的片刻才才被封鎖,因而從客戶端的角度來看,WCF排隊調(diào)用在本質(zhì)上屬于異步調(diào)用。這些是單向調(diào)用的典型特征。因此,由使用 NetMsmqBinding 的端點所提供的任何合約都只能具有單向操作。Windows Communication Foundation 會在加載服務(wù)和代理時對此進行驗證:

 

  1. //只能對排隊合約執(zhí)行單向調(diào)用  
  2. [ServiceContract]  
  3. interface IMyContract  
  4. {  
  5. [OperationContract(IsOneWay = true)]  
  6. void MyMethod();  

由于與 MSMQ 的交互封裝在綁定中,因而在服務(wù)調(diào)用代碼或客戶端調(diào)用代碼中沒有任何與調(diào)用排隊相關(guān)的內(nèi)容。服務(wù)代碼和客戶端代碼看起來與任何其他 Windows Communication Foundation 客戶端代碼和服務(wù)代碼都是一樣的,如圖 2 所示。

針對排隊服務(wù)定義端點時,端點地址中必須包含隊列名稱和隊列類型(公有或私有):

 

  1. < endpoint 
  2. address = "net.msmq://localhost/private/  
  3. MyServiceQueue"  
  4. binding = "netMsmqBinding" 
  5. ...  
  6. /> 

***,MSMQ 是 Windows Communication Foundation 的事務(wù)性資源管理器。如果隊列是事務(wù)性的,則當(dāng)客戶端的事務(wù)中止時,客戶端所發(fā)布的消息將會回滾。在服務(wù)端,從隊列中讀取消息時會啟動新的事務(wù)。如果服務(wù)參與并中止該事務(wù)(可能因異常而導(dǎo)致),消息會回滾到隊列中等待下一次重試。Windows Communication Foundation 提供了完善的故障檢測和病毒消息處理支持功能。

以上就是我們?yōu)榇蠹医榻B的WCF排隊調(diào)用的相關(guān)內(nèi)容。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-11-02 12:46:15

Winform

2009-12-22 15:14:33

WCF調(diào)用

2009-12-21 14:10:26

WCF異步調(diào)用

2010-02-24 13:42:55

WCF PreSess

2009-07-27 17:54:39

WCF服務(wù)ASP.NET

2009-11-09 10:50:30

WCF異步調(diào)用

2011-04-01 10:40:53

WCFiPhone調(diào)用

2011-04-28 15:18:59

2009-06-12 14:32:53

WCFJSON對象jQuery

2009-11-06 15:54:15

WCF異步調(diào)用

2011-05-16 09:30:30

jQueryWCF

2010-02-22 13:28:05

WCF異步調(diào)用

2010-02-26 17:51:16

Silverlight

2009-11-06 09:48:40

WCF服務(wù)

2010-02-26 11:15:51

WCF接口方法

2009-12-07 14:35:42

WCF異步調(diào)用

2011-07-08 20:54:12

iPhone WCF

2011-01-19 12:52:49

WCF.NETC#

2009-12-07 14:26:47

WCF異步調(diào)用

2010-02-24 16:52:59

WCF支持WebGet
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: aaaa一级毛片 | 国产一级成人 | 在线观看日本网站 | 久免费视频 | 久久久久久久一区二区三区 | 国产一区二区精品 | 天天操天天干天天曰 | 一区二区三区在线电影 | 成人在线 | 精品中文字幕在线 | 99精品国产一区二区青青牛奶 | 色综合色综合网色综合 | 在线播放国产一区二区三区 | 99精品免费久久久久久久久日本 | 国产高清精品一区二区三区 | 性欧美hd| 午夜网站视频 | 激情一区二区三区 | 九九视频在线观看 | 欧美精品一区二区三区在线 | 中文字幕乱码亚洲精品一区 | 亚洲国产精品一区二区久久 | 亚洲国产成人在线视频 | 亚洲成人在线免费 | 欧美色999| 色播久久| 一本色道久久综合亚洲精品高清 | 成人国产在线观看 | 欧美www在线| 亚洲一区二区中文字幕 | 久色视频在线观看 | 国产91久久精品一区二区 | 成人免费观看男女羞羞视频 | 国产亚洲精品久久久久动 | 色视频免费 | 日本精品免费 | 久久免费精品视频 | 免费久久网 | 成人av网站在线观看 | 中文字幕在线一区 | 欧美区日韩区 |