【转】MSMQ消息队列安装

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

原文:

http://blog.csdn.net/kingcruel/article/details/8241142

上一篇:深入java集合学习2-ArrayList的实现原理


下一篇:XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装XE6的PAServer(有图有真相)