.net微软消息队列(msmq)简单案例

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;

转载于:https://www.cnblogs.com/guozefeng/p/4170178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值