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

MSMQ使用WCF正確實現技巧講解

開發 開發工具
我們在這篇文章中將會舉一個簡單的例子為大家詳細介紹一下MSMQ使用WCF的相關實現方法。相信朋友們可以從中獲得一些幫助。

在了解了WCF之后,大家應該會被他強大的功能,突出的優勢所深深吸引。它能夠為我們輕松的打造一個跨平臺的安全性極強的解決方案。在這里我們會為大家介紹一下MSMQ使用WCF的實現方法。#t#

在windows平臺上,MSMQ是***的消息傳遞中間件,它是一種高速、異步、可靠的通信機制,當我們在Internet上的兩個應用需要交換信息時,使用這樣的中間件可能是必須的。

WCF完全面向SOA,大大簡化了以往風格迥異的多種分布式解決方案。剛好,最近的一個項目需要使用SOA架構,而底層需要使用MSMQ作為消息傳遞基礎設施,所以這兩天研究了一下,MSMQ使用WCF的方法。下面以一個例子說明。

首先定義服務端和客戶端賴以溝通的Contract,通常將這些Contact定義在一個單獨的dll中,如此可被服務端和客戶端引用。我們假設一個簡單的Contract,即一個接口ICalculate:

  1. [ServiceContract]   
  2. [ServiceContract]   
  3. public interface ICalculate   
  4. {   
  5. [OperationContract(IsOneWay=true)]   
  6. void DealOrder(string orderID);   

 

例子中,我們將ICalculate定義在WcfLib.dll中。

服務端需要實現ICalculate接口:

 

  1. public class Calculator : ICalculate   
  2. {   
  3. public void DealOrder(string orderID)   
  4. {   
  5. Program.FileLogger.Log(orderID);   
  6. }   

 

接下來,服務端就可以以MSMQ的方式發布該服務了,這個可以在配置文件App.Config中進行配置:

 

  1. < ?xml version="1.0" encoding="utf-8" ?>   
  2. < configuration>   
  3. < system.serviceModel>   
  4. < services>   
  5. < service name="WcfTest.Calculator">   
  6. < endpoint address="net.msmq://localhost/private/WcfTest"   
  7. binding="netMsmqBinding" bindingConfiguration="msmq"   
  8. contract="WcfLib.ICalculate"/>   
  9. < /service>   
  10. < /services> < bindings>   
  11. < netMsmqBinding>   
  12. < binding name="msmq">   
  13. < security mode ="None"/>   
  14. < /binding>   
  15. < /netMsmqBinding>   
  16. < /bindings>   
  17. < /system.serviceModel>   
  18. < /configuration>  

 

配置中紅色部分標志了WCF的“ABC”,address表明了將使用本地的名為WcfTest的專用隊列。請注意,binding配置后有一個bindingConfiguration,說明這個binding需要更高級的配置,相應的配置段在bindings Segment中,由于示例中使用的消息隊列沒有使用域模式,所以security mode 設為None,該配置會將MsmqAuthenticationMode屬性設置為MsmqAuthenticationMode.None。另外,配置中顯示的WcfTest專用隊列需要被設置為“事務性”,在創建隊列的時候可以選擇此屬性。

配置完成后,我們可以啟動MSMQ使用WCF的服務了:

 

  1. ServiceHost serviceHost = new ServiceHost(typeof(Calculator));   
  2. serviceHost.Open();  

 

再來看客戶端,非常簡單,首先在App.Config中設置“ABC”(與服務端一致):

 

  1. < ?xml version="1.0" encoding="utf-8" ?>   
  2. < configuration>   
  3. < system.serviceModel>   
  4. < client>   
  5. < endpoint name="CalculatorClient"   
  6. address="net.msmq://localhost/private/WcfTest"   
  7. binding="netMsmqBinding" bindingConfiguration="msmq"   
  8. contract="WcfLib.ICalculate">   
  9. < /endpoint>   
  10. < /client>   
  11. < bindings>   
  12. < netMsmqBinding>   
  13. < binding name="msmq">   
  14. < security mode ="None"/>   
  15. < /binding>   
  16. < /netMsmqBinding>   
  17. < /bindings>   
  18. < /system.serviceModel>   
  19. < /configuration>  

 

在添加了對WcfLib.dll的引用后,接下來就可以調用服務了:

 

  1. ChannelFactory< WcfLib.ICalculate> channelFactory =
     
    new ChannelFactory< ICalculate>("CalculatorClient");   
  2. ICalculate calculate = channelFactory.CreateChannel();   
  3. calculate.DealOrder(this.textBox1.Text);  

 

MSMQ使用WCF作為消息傳遞基礎設施后,有這樣一個好處,當Internet不可用或者服務端沒有啟動時,客戶端仍然可以調用DealOrder方法將消息發送,當然,消息會暫存在隊列中,等網絡恢復或服務端啟動后,這些隊列中的消息將會被處理。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-25 09:13:34

WCF異步調用

2010-02-25 10:10:29

WCF使用Header

2010-02-26 11:22:16

LitwareHR使用

2010-02-24 10:07:48

WCF跨越邊界

2009-12-21 18:46:50

WCF傳輸大數據

2010-02-24 10:41:28

WCF服務保護

2010-02-25 13:48:23

WCF動態創建代碼

2010-02-25 16:52:12

引用WCF服務

2010-02-26 08:59:10

WCF服務宿主程序

2009-12-21 10:09:26

WCF創建客戶端服務對

2010-03-05 16:51:01

Python程序轉為E

2010-02-23 09:44:12

WCF dataCon

2010-02-26 10:30:03

ASP.NET Aja

2010-02-22 16:19:25

WCF自托管

2009-12-22 19:14:36

WCF效率

2009-12-21 14:49:27

2009-12-03 11:11:57

PHP網站優化

2009-12-29 18:09:00

Silverlight

2010-03-04 15:12:33

Python算法

2010-03-04 11:12:02

Python AOP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩成人精品一区二区三区 | 亚洲va欧美va人人爽午夜 | 在线免费观看黄a | 九九福利| 久久精品小视频 | 成人av看片| 久久久久久九九九九 | 成人在线中文字幕 | 国产乱码精品1区2区3区 | 欧美日韩久久久 | 欧美一页 | 亚洲国产精品一区二区第一页 | 中文字幕av一区 | 欧美日韩国产精品一区 | 亚洲精品一区二三区不卡 | 伦理午夜电影免费观看 | 免费精品一区 | 久久久精品综合 | www.狠狠操 | 久久久久国产一级毛片 | 色综合久久久久 | 在线免费观看黄视频 | 国产成人精品久久久 | 久久久久国产精品一区 | 久久机热| 国产成人久久精品 | 一级毛片在线播放 | 美女张开腿露出尿口 | 亚洲成人av | 久久精品一级 | 在线观看日本网站 | 91热在线 | 中文字幕亚洲国产 | 成人福利网 | 国产精品成av人在线视午夜片 | 精品国产一区二区三区久久久蜜月 | 日本三级全黄三级a | 91色视频在线观看 | 欧美激情综合 | 国产精品久久久久无码av | 在线观看国产视频 |