一、Windows 7安裝、管理消息隊列
1、安裝消息隊列
執行用戶必須要有本地 Administrators 組中的成員身份,或等效身份。
具體步驟:
開始—》控制面板—》程序—》程序和功能—》打開或關閉Windows功能—》依次展開Microsoft Message Queue (MSMQ) 服務器、Microsoft Message Queue (MSMQ) 服務器核心—》確定
如果系統提示您重新啟動計算機,請單擊“確定”以完成安裝。
2、管理消息隊列
計算機—》右鍵—》管理—》服務和應用程序—》消息隊列。
二、Windows Server 2008安裝、管理消息隊列
1、安裝消息隊列
開始—》控制面板—》管理工具—》服務器管理器—》功能—》添加功能—》依次展開MSM、MSMQ服務—》確定。
2、管理消息隊列
計算機—》右鍵—》管理—》功能—》消息隊列。
三、創建、刪除和管理隊列
要開發MSMQ程序就必須學習一個很重要的類(MessageQueue),該類位於名稱空間System.Messageing下。
常用方法:
--Create()方法:創建使用指定路徑的新消息隊列。
--Delete()方法:刪除現有的消息隊列。
--Existe()方法:查看指定消息隊列是否存在。
--GetAllMessages()方法:得到隊列中的所有消息。
--GetPublicQueues()方法:在“消息隊列”網絡中定位消息隊列。
--Peek()/BeginPeek()方法:查看某個特定隊列中的消息隊列,但不從該隊列中移出消息。
--Receive()/BeginReceive()方法:檢索指定消息隊列中最前面的消息並將其從該隊列中移除。
--Send()方法:發送消息到指定的消息隊列。
--Purge()方法:清空指定隊列的消息。
常用屬性:
--Priority:設置消息優先級,MessagePriority枚舉里全部進行了封裝,MessagePriority.High();
AboveNormal:hight與Normal消息優先級之間;
High:高級消息優先級;
Highest:最高消息優先級;
Low:低消息優先級;
Lowest:最低消息優先級;
Normal:普通消息優先級;
VeryHigh:Highest和High消息優先級之間;
VeryLow:Low和Lowest消息優先級之間;
四、發送和序列化消息
MSMQ消息隊列中定義的消息由一個主體(body)和若干屬性構成。消息的主體可以由文本、二進制構成,根據需要還可以被加密。
在MSMQ中消息的大小不能夠超過4MB。發送消息是通過Send方法來完成的,需要一個Message參數。
1、發送消息:
步驟:連接隊列-->指定消息格式-->提供要發送的數據(主體)-->調用Send()方法將消息發送出去。詳細見后面的示例程序。
2、序列化消息:
消息序列化可以通過.NET Framework附帶的三個預定義格式化程序來完成:
-- XMLMessageFormatter對象----MessageQueue組件的默認格式化程序設置。
-- BinaryMessageFormatter對象;
-- ActiveXMessageFormatter對象;
由於后兩者格式化后的消息通常不能為人閱讀,所以我們經常用到的是XMLMessageFormatter對象。該對象構造方法有三種重載:
1、public XmlMessageFormatter();
2、public XmlMessageFormatter(string[] targetTypeNames);
3、public XmlMessageFormatter(Type[] targetTypes);
如我們后面的示例程序中用到的序列化語句:
//序列化為字符串
XmlMessageFormatter formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
五、讀取和接收消息
1、讀取消息:
也就是從指定隊列中獲取消息。
2、接收消息有兩種方式:
--> 通過Receive()方法。
--> 通過Peek()方法。