.net微软消息队列(msmq)简单案例
2014-12-17 19:24
381 查看
1.首先我们需要安装消息队列服务,它是独立的消息记录的服务,并保存在硬盘文件中。
我们添加名为:DMImgUpload的私有消息队列。
2.定义消息队列的连接字符串建议采用IP:
(1)FormatName:DIRECT=OS:Pac_gzf-PC\Private$\DMImgUpload
(2)FormatName:DIRECT=TCP:192.168.1.105\Private$\DMImgUpload
string queuePath="FormatName:DIRECT=TCP:192.168.1.105\Private$\DMImgUpload";
2.创建实例:【using System.Messaging;】
protected MessageQueueTransactionType transactionType = MessageQueueTransactionType.Automatic;//定义事务
MessageQueue queue = new MessageQueue(queuePath); //根据传入quueuPath创建队列
TimeSpan timeout = TimeSpan.FromSeconds(3);//设置读取消息间隔时间;
queue.DefaultPropertiesToSend.AttachSenderId = false;
queue.DefaultPropertiesToSend.UseAuthentication = false;
queue.DefaultPropertiesToSend.UseEncryption = false;
queue.DefaultPropertiesToSend.AcknowledgeType = AcknowledgeTypes.None;
queue.DefaultPropertiesToSend.UseJournalQueue = false;
3.
/// 接收消息方法
public virtual object Receive()
{
try
{
using (Message message = queue.Receive(timeout, transactionType))
return message;
}
catch (MessageQueueException mqex)
{
if (mqex.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
throw new TimeoutException();
throw mqex;
}
}
/// 发送消息【lable:消息标识,msq:消息】
public virtual void Send(string label, object msg)
{
queue.Send(msg, label, transactionType);
}
5.备注:
当我们跨主机调用时会出现,消息队列权限提示,要在msmq中设置network service权限
消息队列存储可以使字符串,也可以使对象形式。
比如:我们定义一个对象:SolImgCreateModel。接受消息进行强制转换即可:
(SolImgCreateModel)((Message) Receive()).Body;
我们添加名为:DMImgUpload的私有消息队列。
2.定义消息队列的连接字符串建议采用IP:
(1)FormatName:DIRECT=OS:Pac_gzf-PC\Private$\DMImgUpload
(2)FormatName:DIRECT=TCP:192.168.1.105\Private$\DMImgUpload
string queuePath="FormatName:DIRECT=TCP:192.168.1.105\Private$\DMImgUpload";
2.创建实例:【using System.Messaging;】
protected MessageQueueTransactionType transactionType = MessageQueueTransactionType.Automatic;//定义事务
MessageQueue queue = new MessageQueue(queuePath); //根据传入quueuPath创建队列
TimeSpan timeout = TimeSpan.FromSeconds(3);//设置读取消息间隔时间;
queue.DefaultPropertiesToSend.AttachSenderId = false;
queue.DefaultPropertiesToSend.UseAuthentication = false;
queue.DefaultPropertiesToSend.UseEncryption = false;
queue.DefaultPropertiesToSend.AcknowledgeType = AcknowledgeTypes.None;
queue.DefaultPropertiesToSend.UseJournalQueue = false;
3.
/// 接收消息方法
public virtual object Receive()
{
try
{
using (Message message = queue.Receive(timeout, transactionType))
return message;
}
catch (MessageQueueException mqex)
{
if (mqex.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
throw new TimeoutException();
throw mqex;
}
}
/// 发送消息【lable:消息标识,msq:消息】
public virtual void Send(string label, object msg)
{
queue.Send(msg, label, transactionType);
}
5.备注:
当我们跨主机调用时会出现,消息队列权限提示,要在msmq中设置network service权限
消息队列存储可以使字符串,也可以使对象形式。
比如:我们定义一个对象:SolImgCreateModel。接受消息进行强制转换即可:
(SolImgCreateModel)((Message) Receive()).Body;
相关文章推荐
- .Net下的MSMQ(微软消息队列)的同步异步调用
- .Net下的MSMQ(微软消息队列)的同步异步调用
- MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例
- MSMQ(微软消息队列)简单使用-支持离线提交数据(供阅)
- 【转】MSMQ 微软消息队列 简单 示例
- .Net下的MSMQ(微软消息队列)的同步异步调用
- MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例
- .Net下的MSMQ(微软消息队列)的同步异步调用 (转载)
- .Net下的MSMQ(微软消息队列)的同步异步调用
- MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例
- C# 线程手册 第五章 多线程应用程序 一个多线程微软消息队列(MSMQ)监听器
- C#中使用Windows消息队列服务(MSMQ)简单示例
- .Net 消息队列(MSMQ) 应用
- C#中使用Windows消息队列服务(MSMQ)简单示例
- .Net消息队列MSMQ的使用实例
- 简单的分布式应用程序日志记录器(logger)-基于MSMQ(消息队列)
- 微软消息队列(MSMQ)简介
- 微软消息队列:SQL Service Broker PK MSMQ
- .net 消息队列简单实例
- MSMQ(MicroSoft Message Queue,微软消息队列)