一、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()方法。