日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
WCF排隊調用由NetMsmqBinding支持

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

創(chuàng)新互聯建站于2013年開始,先為茫崖等服務建站,茫崖等地企業(yè),進行企業(yè)商務咨詢服務。為茫崖企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

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

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

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

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

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

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

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

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

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

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

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

以上就是我們?yōu)榇蠹医榻B的WCF排隊調用的相關內容。


文章名稱:WCF排隊調用由NetMsmqBinding支持
文章路徑:http://www.dlmjj.cn/article/cocgeij.html