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

.net微软消息队列(msmq)简单案例相关推荐

  1. MSMQ(MicroSoft Message Queue,微软消息队列)

    MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位 ...

  2. C#使用消息队列(MSMQ)

    (1).认识消息队列 首先说一下,消息队列 (MSMQ Microsoft Message Queuing)是MS提供的服务,也就是Windows操作系统的功能,并不是.Net提供的. MSDN上的解 ...

  3. JAVA应用开发MQ实战最佳实践——Series2:消息队列RocketMQ性能测试案例

    简介:JAVA应用开发MQ实战最佳实践--Series2:消息队列RocketMQ性能测试案例 往期内容 JAVA应用开发MQ实战最佳实践--Series1:RocketMQ综述及代码设计 1. 消息 ...

  4. 消息队列RocketMQ性能测试案例

    1. 消息队列RocketMQ性能测试案例 1.1 RocketMQ测试分析 客户场景,信息共享交换平台: 1.交换平台需支持每秒万级别数据传输 2.实现跨路段.跨部门.跨行业.跨区域信息即时共享,做 ...

  5. Microsoft Message Queue(MSMQ:微软消息队列)简介

    一.前言 最近在安装公司的一个产品时,接触到了MSMQ,在此对MSMQ做一个简单的介绍,以便各位能对它有一个快速.直观的认识.本文针对于Microsoft Message Queue,以下提到的消息队 ...

  6. 消息队列--RabbitMQ简单使用

    安装使用 地址:http://www.rabbitmq.com/ 需要根据不同的版本选择不同的erlang 安装erlang 安装RabbitMQ首先需要安装erlang环境,根据GitHub上erl ...

  7. windows消息队列C语言,08年计算机二级C语言辅导:vc操作微软消息队列的方法

    定义 IMSMQQueuePtr qDest; // Represents Destination Queue IMSMQQueueInfoPtr qInfo; //Represents an ope ...

  8. 安装“消息队列 (MSMQ)”

    在 Windows Server 2008 or Windows Server 2008 R2 上安装消息队列 4 在服务器管理器中,单击"功能". 在"功能摘要&quo ...

  9. RabbitMq--AMQP高级消息队列协议--简单了解

    2019独角兽企业重金招聘Python工程师标准>>> 一.安装 Rabbitmq 是用 erlang 语言写的,所以使用还要安装 Erlang. 安装 erlang 还要安装 py ...

最新文章

  1. CIW《操作系统安全》目录
  2. BZOJ3110: [Zjoi2013]K大数查询
  3. 今晚8点:基于强化学习的关系抽取和文本分类 | PhD Talk #18
  4. Struts2 标签配置详细
  5. Android UI之ImageButton(带图标的按钮)
  6. 最终选型 Blazor.Server:又快又稳!
  7. linux 程序包管理5 编译安装
  8. linux中UDP程序流程、客户端、服务端
  9. HTML+CSS+JS实现React简单的计算器实例
  10. 如何在html网页中嵌入一段语法高亮的代码?_工程师私藏的代码比较工具,好用!...
  11. jQuery验证码发送时间秒递减(刷新存储cookie)
  12. springboot testcontext @sql_举世闻名的 SQL 注入是什么?这个漫画告诉你!
  13. AI学习笔记(十九)循环神经网络
  14. java-TreeSet进行排序的2种方式
  15. 什么软件测试情侣头像,即刻情侣头像配对器
  16. 计算机专业哪个考研简单,考研哪些专业比较简单好考?
  17. Flask Request对象
  18. 移动端VUE实现一周课程表
  19. 使用HTML标记语言画出表格,HTML标记语言——表格标记
  20. wxpython 下拉列表的实现

热门文章

  1. 关于Java API不能远程访问HBase的问题
  2. HDFS多用户管理ACL机制other权限访问控制的理解
  3. 计算机网络英语求职简历翻译,计算机网络求职英文简历模板.doc
  4. python中怎么打开文件_python如何打开文件
  5. MySQL 高级 - 存储过程 - 函数
  6. JVM的标配参数和X参数
  7. Spring Security 应用详解 集成SpringBoot —— 简单入门
  8. leetcode C++ 28. 实现 strStr() 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 need
  9. 模拟电路技术之基础知识(六)
  10. HDU_1003 Max Sum