1.安装MSMQ

2.添加私有的队列

3.MSMQ可以发送的类型可以是任意类型,包括类

  1. static string strServer = @"FormatName:Direct=TCP:10.7.46.42\private$\msmq";
  2.  
  3. static void Main(string[] args)
  4. {
  5. DeleteAllMessage();
  6. SendMessage();
  7. ReveiveMessage();
  8. }
  9.  
  10. public static void DeleteAllMessage()
  11. {
  12. MessageQueue myQueue = new MessageQueue(strServer);
  13. myQueue.Purge(); //删除此队列中包含的所有消息
  14. myQueue.Dispose();
  15. }
  16.  
  17. public static void SendMessage()
  18. {
  19. MessageQueue myQueue = new MessageQueue(strServer);
  20. Message myMessage = new Message();
  21. try
  22. {
  23. myMessage.Body = new Person() { Name = "jake", Age = 29, Birthday = Convert.ToDateTime("1987/07/20") };
  24. myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(Person) });
  25. //设置消息发送的优先级别
  26. myMessage.Priority = MessagePriority.Highest; //最高消息优先级
  27. myQueue.Send(myMessage);
  28. }
  29. catch(Exception ex)
  30. {
  31.  
  32. }
  33. finally
  34. {
  35. myMessage.Dispose();
  36. myQueue.Dispose();
  37. }
  38.  
  39. }
  40.  
  41. public static void ReveiveMessage()
  42. {
  43. //连接到本地队列
  44. MessageQueue myQueue = new MessageQueue(strServer);
  45. myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(Person) });
  46. Message myMessage = null;
  47. try
  48. {
  49. int count = myQueue.GetAllMessages().Length;
  50. //从队列中接收消息
  51. //Peek: 返回队列中第一条消息的副本,而不从队列中移除该消息
  52. //Receive: 接收队列中的第一条消息,但不将它从队列中移除
  53. //PeekById: 返回具有指定消息标识符的消息的副本,但不从队列中移除消息
  54. //ReceiveById: 接收匹配给定标识符的消息,并将其从队列中移除
  55. myMessage = myQueue.Receive();
  56. Person p = (Person)myMessage.Body; //获取消息的内容
  57. Console.WriteLine("Name:" + p.Name);
  58. Console.WriteLine("Age:" + p.Age.ToString());
  59. Console.WriteLine("Birthday:" + p.Birthday.ToString("yyyy/MM/dd"));
  60. count = myQueue.GetAllMessages().Length;
  61. Console.ReadLine();
  62.  
  63. }
  64. catch
  65. {
  66. Console.WriteLine("error4");
  67. }
  68. finally
  69. {
  70. myMessage.Dispose();
  71. myQueue.Dispose();
  72. }
  73. }

  

MSMQ的更多相关文章

  1. MSMQ学习

    一.理论准备 MSMQ(MicroSoft Message Queue,微软消息队列)官方的解释是:在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布 ...

  2. 基于ajax与msmq技术的消息推送功能实现

    周末在家捣鼓了一下消息推送的简单例子,其实也没什么技术含量,欢迎大伙拍砖.我设计的这个推送demo是基于ajax长轮询+msmq消息队列来实现的,具体交互过程如下图: 先说说这个ajax长轮询,多长时 ...

  3. 已经过事务处理的 MSMQ 绑定(转载)

    https://msdn.microsoft.com/zh-cn/biztalk/ms751493 本示例演示如何使用消息队列 (MSMQ) 执行已经过事务处理的排队通信. 注意 本主题的末尾介绍了此 ...

  4. 基于WCF MSMQ 的企业应用解决方案

    最近研究了一下基于MSMQ的WCF应用,从书上.网上查了很多资料,但始终没能彻底理解WCF-MSMQ的工作原理,也没能得到一个合理的应用解决方案.索性还是自己做个实验,探索一下吧.经过反复试验,颇有收 ...

  5. 使用MSMQ 远程队列

    ------------------------------------------------------------------------------------------------- -- ...

  6. Redis学习笔记~实现消息队列比MSMQ更方便

    什么是队列:简单的说就是数据存储到一个空间里(可以是内存,也可以是物理文件),先存储的数据对象,先被取出来,这与堆栈正好相反,消息队列也是这样,将可能出现高并发的数据进行队列存储,并按着入队的顺序依次 ...

  7. 详解.Net消息队列(MSMQ)应用

    [IT168 技术文档]MSMQ是Windows 2000.Windows XP.Windows Server 2003的一个组件,并将继续包含在Windows Vista和以后的Windows服务器 ...

  8. 利用Ajax+MSMQ(消息队列)+WebService实现服务器端向客户端的信息推送

    需求: 每当数据库有数据更新时,推送到客户端 软需求: 1.服务器资源有限,要求资源占用尽可能小: 2.项目可控,不许调用第三方不可信不稳定的方法. 已有事例: 1.58到家采用的方法是TCP的长连接 ...

  9. MSMQ消息队列 用法

    引言 接下来的三篇文章是讨论有关企业分布式开发的文章,这三篇文章筹划了很长时间,文章的技术并不算新,但是文章中使用到的技术都是经过笔者研究实践后总结的,正所谓站在巨人的肩膀上,笔者并不是巨人,但也希望 ...

随机推荐

  1. <<< javascript地址栏,代码

    不伤及服务器,可以用来测试项目效果 修改网页.不修改服务器端任何网页页面 javascript:document.body.contentEditable='true';document.design ...

  2. 友盟ionic多渠道自动签名app

    这几天公司的运营部门要求添加流量统计功能,集成了友盟的插件,中间遇到很多的问题,在这里说明记录一下,为遇到相同问题的朋友们减少麻烦 问题一.插件的使用直接将友盟sdk系在放置到项目根目录下plugin ...

  3. Win7---------专区

    待完善中-------------------------------------- 1.0Win7来历: 不算上最早的Windows版本从 95 98 2000  ME  XP  2003  Vis ...

  4. EXPLAINING WHAT ACTION AND FUNC ARE

    http://simpleprogrammer.com/2010/09/24/explaining-what-action-and-func-are/ Explaining What Action A ...

  5. [NHibernate]多对多关系(关联查询)

    目录 写在前面 文档与系列文章 多对多关系关联查询 总结 写在前面 上篇文章介绍了nhibernate中对一对多关系进行关联查询的几种方式,以及在使用过程需要注意的问题.这篇文章对多对多关系的查询处理 ...

  6. Two Sum Leetcode Java

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  7. 字符串匹配:KMP算法

    一.原理: KMP算法是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法.朴素算法( ...

  8. Java高并发同步Volatile的使用

    引言: 在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”. 可见性的意思 ...

  9. MySQL5.6 新特性之GTID

    背景: MySQL5.6在5.5的基础上增加了一些改进,本文章先对其中一个一个比较大的改进"GTID"进行说明. 概念: GTID即全局事务ID(global transactio ...

  10. java序列化

    什么是java序列化,如何实现java序列化? 我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如,要将java对象存储到硬盘或者传送给网络上的其他计算机 ...