C#操作MSMQ示例,示例代码:
using
System; using
System.Collections.Generic; using
System.Linq; using System.Text; using System.Messaging;
namespace MessageQueues { class
Program {
staticvoid Main(string[] args)
{
/*
注意事项:
* 1. 发送和接受消息的电脑都要安装MSMQ。 * 2.
在工作组模式下不能访问public队列。
* 3. 访问本地队列和远程队列,path字符串格式不太一样。 * 4.
public队列存在于消息网络中所有主机的消息队列中。
* 5. private队列则只存在于创建队列的那台主机上。
*/
#region
以下是private队列访问示例:
//访问本地电脑上的消息队列时Path的格式可以有如下几种:
MessageQueue mq =new MessageQueue();
//mq.Path = @".\Private$\test";
//mq.Path = @"sf00902395d34\Private$\test";
//sf00902395d34是主机名
//mq.Path =
@"FormatName:DIRECT=OS:sf00902395d34\Private$\test";
//mq.Path =
@"FormatName:DIRECT=OS:localhost\Private$\test";
//访问远程电脑上的消息队列时Path的格式
mq.Path =@"FormatName:DIRECT=OS:server\Private$\test";
//构造消息
Message msg =new Message();
msg.Body
="Hello,world. This is a test message. "+
DateTime.Now.ToString();
//向队列发送消息
mq.Send(msg);
//读取队列中的所有消息
Message[] msgs =
mq.GetAllMessages();
foreach
(Message m in
msgs) {
Console.WriteLine(m.Body.ToString());
}
//清除队列中的所有消息
mq.Purge();
#endregion
} } }
本地队列和远程队列的区别如下图所示:

需要注意的几点:
1.
访问远程队列和本地队列的path字符串格式有区别。
2.
不管是访问远程队列还是本地队列,访问者的本地系统一定要安装MSMQ。
C#操作MSMQ示例,布布扣,bubuko.com
C#操作MSMQ示例
原文:http://www.cnblogs.com/armyfai/p/3586895.html