MSMQ
1.安装MSMQ
2.添加私有的队列
3.MSMQ可以发送的类型可以是任意类型,包括类
static string strServer = @"FormatName:Direct=TCP:10.7.46.42\private$\msmq"; static void Main(string[] args)
{
DeleteAllMessage();
SendMessage();
ReveiveMessage();
} public static void DeleteAllMessage()
{
MessageQueue myQueue = new MessageQueue(strServer);
myQueue.Purge(); //删除此队列中包含的所有消息
myQueue.Dispose();
} public static void SendMessage()
{
MessageQueue myQueue = new MessageQueue(strServer);
Message myMessage = new Message();
try
{
myMessage.Body = new Person() { Name = "jake", Age = 29, Birthday = Convert.ToDateTime("1987/07/20") };
myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(Person) });
//设置消息发送的优先级别
myMessage.Priority = MessagePriority.Highest; //最高消息优先级
myQueue.Send(myMessage);
}
catch(Exception ex)
{ }
finally
{
myMessage.Dispose();
myQueue.Dispose();
} } public static void ReveiveMessage()
{
//连接到本地队列
MessageQueue myQueue = new MessageQueue(strServer);
myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(Person) });
Message myMessage = null;
try
{
int count = myQueue.GetAllMessages().Length;
//从队列中接收消息
//Peek: 返回队列中第一条消息的副本,而不从队列中移除该消息
//Receive: 接收队列中的第一条消息,但不将它从队列中移除
//PeekById: 返回具有指定消息标识符的消息的副本,但不从队列中移除消息
//ReceiveById: 接收匹配给定标识符的消息,并将其从队列中移除
myMessage = myQueue.Receive();
Person p = (Person)myMessage.Body; //获取消息的内容
Console.WriteLine("Name:" + p.Name);
Console.WriteLine("Age:" + p.Age.ToString());
Console.WriteLine("Birthday:" + p.Birthday.ToString("yyyy/MM/dd"));
count = myQueue.GetAllMessages().Length;
Console.ReadLine(); }
catch
{
Console.WriteLine("error4");
}
finally
{
myMessage.Dispose();
myQueue.Dispose();
}
}
MSMQ的更多相关文章
- MSMQ学习
一.理论准备 MSMQ(MicroSoft Message Queue,微软消息队列)官方的解释是:在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布 ...
- 基于ajax与msmq技术的消息推送功能实现
周末在家捣鼓了一下消息推送的简单例子,其实也没什么技术含量,欢迎大伙拍砖.我设计的这个推送demo是基于ajax长轮询+msmq消息队列来实现的,具体交互过程如下图: 先说说这个ajax长轮询,多长时 ...
- 已经过事务处理的 MSMQ 绑定(转载)
https://msdn.microsoft.com/zh-cn/biztalk/ms751493 本示例演示如何使用消息队列 (MSMQ) 执行已经过事务处理的排队通信. 注意 本主题的末尾介绍了此 ...
- 基于WCF MSMQ 的企业应用解决方案
最近研究了一下基于MSMQ的WCF应用,从书上.网上查了很多资料,但始终没能彻底理解WCF-MSMQ的工作原理,也没能得到一个合理的应用解决方案.索性还是自己做个实验,探索一下吧.经过反复试验,颇有收 ...
- 使用MSMQ 远程队列
------------------------------------------------------------------------------------------------- -- ...
- Redis学习笔记~实现消息队列比MSMQ更方便
什么是队列:简单的说就是数据存储到一个空间里(可以是内存,也可以是物理文件),先存储的数据对象,先被取出来,这与堆栈正好相反,消息队列也是这样,将可能出现高并发的数据进行队列存储,并按着入队的顺序依次 ...
- 详解.Net消息队列(MSMQ)应用
[IT168 技术文档]MSMQ是Windows 2000.Windows XP.Windows Server 2003的一个组件,并将继续包含在Windows Vista和以后的Windows服务器 ...
- 利用Ajax+MSMQ(消息队列)+WebService实现服务器端向客户端的信息推送
需求: 每当数据库有数据更新时,推送到客户端 软需求: 1.服务器资源有限,要求资源占用尽可能小: 2.项目可控,不许调用第三方不可信不稳定的方法. 已有事例: 1.58到家采用的方法是TCP的长连接 ...
- MSMQ消息队列 用法
引言 接下来的三篇文章是讨论有关企业分布式开发的文章,这三篇文章筹划了很长时间,文章的技术并不算新,但是文章中使用到的技术都是经过笔者研究实践后总结的,正所谓站在巨人的肩膀上,笔者并不是巨人,但也希望 ...
随机推荐
- css3 input边框蓝光特效
1.style样式 <style type="text/css"> .demok3_input { transition: all 0.30s ease-in-out; ...
- Css中的Position属性
Css中的Position属性 Css属性在线查询地址: http://www.css88.com/book/css/properties/index.htm CSS 中的 position 属性 在 ...
- morse code
morse code,摩斯电码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母.数字和标点符号. 摩斯电码,是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代 ...
- storyboard传值方式
通过segue传值 在storyboard设置segue的Identifier segue是连接两个视图控制器交互的线 sender是触发这个方法执行的对象,比如是单击tableView上的cel ...
- java8--类加载机制与反射(java疯狂讲义3复习笔记)
本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的clas ...
- Angular2.0快速开始
参考资料: Angular2.0快速开始 AngularJS2 教程
- 微信公众平台可通过UnionID机制在多公众号间帐号互通
微信公众平台越来越注重开发者的反馈信息了,这不,微信开放平台提供了UnionID机制,通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通 ...
- 如何删除PHP数组中的元素,并且索引重排(unset,array_splice)?
如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排: <?php $arr = array('a','b','c','d'); unset($arr[1]); pri ...
- $_SERVER["SCRIPT_NAME"]、$_SERVER["PHP_SELF"]、$_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]
1.$_SERVER["SCRIPT_NAME"] 说明:包含当前脚本的路径 2.$_SERVER["PHP_SELF"] 说明:当前正在执行脚本的文件名 3. ...
- C和指针 第三章 习题
在一个源文件中,有两个函数x和y,定义一个链接属性external储存类型static的变量a,且y可以访问,x不可以访问,该如何定义呢? #include <stdio.h> void ...