MSMQ研究
开发过程记录如下:
1、 本机配置MSMQ ------控制面板-------启动或者关闭Windows功能----默认安装MSMQ即可
注意:本地安装后再VS中才能引用System.Messaging;
安装后:计算机管理界面出现消息队列
2.创建控制台程序
引用:
using System.Configuration;
using System.Messaging;
3.MSMQ传递消息格式为XML 或二进制
获取指定路径下的所有XML文本
发送到本地队列中
#region 使用本地初始化信息队列
//MessageQueue messageQueue = null;
// if (MessageQueue.Exists(@".\private$\MQtest1"))
// {
// messageQueue = new MessageQueue(@".\Private$\MQtest1");
// messageQueue.Label = "MQtesting";
// }
// else
// {
// messageQueue = MessageQueue.Create(@".\Private$\MQtest1");
// messageQueue.Label = "MQtest1";
// }
#endregion
#region 获取路径下所有xml文件
string path = ConfigurationManager.AppSettings["path"].ToString();
var files = Directory.GetFiles(path, "*.xml");
//messageQueue.Formatter = new XmlMessageFormatter(files);
foreach (var file in files)
{
//打印测试是否获取到文件
//Console.WriteLine(file);
//加载xml内容
XmlDocument doc = new XmlDocument();
doc.Load(file);
string xs = doc.InnerXml;
Message ms = new Message();
ms.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
ms.Body = xs;
messageQueue.Send(ms);
}
#endregion
生成结果:
4.发送消息到远端MSMQ
远端无需创建,无需验证是否存在
#region 使用远端队列
//string queuepath = ConfigurationManager.AppSettings["hxqueue"].ToString();
MessageQueue messageQueue = new MessageQueue(@"FormatName:Direct=TCP: (远端IP) \private$\SoarMQtest1");
#endregion
发送消息后,本地会出现传出队列
如图:
远端MSMQ会出现消息数据:
5.消息的序列化和消息的接收
System.Messaging.Message mes = messageQueue.Receive();//获取单条数据(如果没有数据,当前进程会被阻塞)
mes.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
string message = mes.Body.ToString();
Console.WriteLine(message);
1、全部获取,循环处理?
2、线程逐个抓取,逐个处理?
还需要研究部分:
1、 把控制台程序写成后台服务?监听文件夹中文件,
2、 发送到MSMQ的数据如果保存到对应磁盘
3、 除了string类型,是否有其他类型传输方式
MSMQ研究的更多相关文章
- 基于WCF MSMQ 的企业应用解决方案
最近研究了一下基于MSMQ的WCF应用,从书上.网上查了很多资料,但始终没能彻底理解WCF-MSMQ的工作原理,也没能得到一个合理的应用解决方案.索性还是自己做个实验,探索一下吧.经过反复试验,颇有收 ...
- MSMQ消息队列 用法
引言 接下来的三篇文章是讨论有关企业分布式开发的文章,这三篇文章筹划了很长时间,文章的技术并不算新,但是文章中使用到的技术都是经过笔者研究实践后总结的,正所谓站在巨人的肩膀上,笔者并不是巨人,但也希望 ...
- (转)MSMQ续
原文作者:虔诚者 点此传送至原文 在上一篇我简单介绍了MSMQ的相关概念,本篇将以代码说明 Message Message是MSMQ的数据存储单元,我们的用户数据一般也被填充在Message的b ...
- (转)MSMQ(消息队列)
原文作者:虔诚者 点此传送至原文 前段时间研究WCF接触到了MSMQ,所以认真的学习了一下,下面是我的笔记. 我理解的MSMQ MSMQ可以被看成一个数据储存装置,就如同数据库,只不过数据存 ...
- MSMQ(消息队列)续
在上一篇我简单介绍了MSMQ的相关概念,本篇将以代码说明 Message Message是MSMQ的数据存储单元,我们的用户数据一般也被填充在Message的body当中,因此很重要,让我们来看一看其 ...
- MSMQ(消息队列)
前段时间研究WCF接触到了MSMQ,所以认真的学习了一下,下面是我的笔记. 我理解的MSMQ MSMQ可以被看成一个数据储存装置,就如同数据库,只不过数据存储的是一条一条的记录,而MSMQ存储的是一个 ...
- WCF MSMQ
基于WCF MSMQ 的企业应用解决方案 最近研究了一下基于MSMQ的WCF应用,从书上.网上查了很多资料,但始终没能彻底理解WCF-MSMQ的工作原理,也没能得到一个合理的应用解决方案.索性还是 ...
- MSMQ .NET下的应用
Message Message是MSMQ的数据存储单元,我们的用户数据一般也被填充在Message的body当中,因此很重要,让我们来看一看其在.net中的体现,如图: 在图上我们可以看见,Messa ...
- 实战WCF中net.tcp和net.msmq绑定协议
平时很少写博文的,以前都是转载其他园友的文章,这几天有时间就自己尝试写一些wcf相关的文章,希望能给有需要的人带来一点帮助吧,水平有限再加上初次动手,写得不好还请多多包含!废话不多说了直接进入正题. ...
随机推荐
- java web当中表单提交到后台出现乱码的解决方法
1.如果提交方式为post,想不乱码,只需要在服务器端设置request对象的编码即可,客户端以哪种编码提交的,服务器端的request对象就以对应的编码接收,比如客户端是以UTF-8编码提交的,那么 ...
- SALT+HASH撒盐加密
#region 撒盐加密 string salt = Guid.NewGuid().ToString(); byte[] passwordAndSaltBytes = System.Text.Enco ...
- linux批量修改文件名
源文件; [root@test_machine fuzj]# ls fuzj-1.txt fuzj-2.txt fuzj-3.txt fuzj-4.txt fuzj-5.txt fuzj-6 ...
- SQL Server 索引结构及其使用(一)[转]
SQL Server 索引结构及其使用(一) 作者:freedk 一.深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(cluster ...
- django进阶-1
前言: 各位久等了,django进阶篇来了. 一.get与post 接口规范: url不能写动词,只能写名词 django默认只支持两种方式: get, post get是获取数据 ?user=zcl ...
- 【大数据系列】hadoop单机模式安装
一.添加用户和用户组 adduser hadoop 将hadoop用户添加进sudo用户组 sudo usermod -G sudo hadoop 或者 visudo 二.安装jdk 具体操作参考:c ...
- 【linux系列】centos7配置桥接模式静态IP
一.设置桥接模式 VMware->Edit->Virtual Network Edit 二.查看物理机的ip地址 三.根据物理机的ip地址,设置linux虚拟机的ip地址 四.网络重启 五 ...
- Github for Windows 登录时报代理问题?
Github for Windows 登录时报如下错误: 不要被它的提示信息误导了. 登录失败,跟代理半毛钱关系都没有. 是 .net framework 组件 的问题. 更新下 .net frame ...
- [原]Openstack之identity server(keystone)
本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. 重新温习keystone的概念和理解 --------------------- ...
- [原]secureCRT 改变显示宽度
1.首先全局设置:Options - Global Options - Terminal - Appearance - Maximumcolumns 最大只能设置成1024(推荐256),设置越大越占 ...