net中的消息队列--博客园

上传人:ji****72 文档编号:37545988 上传时间:2018-04-18 格式:DOCX 页数:11 大小:51.05KB
返回 下载 相关 举报
net中的消息队列--博客园_第1页
第1页 / 共11页
net中的消息队列--博客园_第2页
第2页 / 共11页
net中的消息队列--博客园_第3页
第3页 / 共11页
net中的消息队列--博客园_第4页
第4页 / 共11页
net中的消息队列--博客园_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《net中的消息队列--博客园》由会员分享,可在线阅读,更多相关《net中的消息队列--博客园(11页珍藏版)》请在金锄头文库上搜索。

1、ASP.NET WCF 开发 博客园 首页 社区 新随笔 联系 订阅 管理 随笔-173 评论-2004 文章-1 trackbacks-63 .NET 中的消息队列中的消息队列下文参考下文参考: http:/ l 为何使用消息队列为何使用消息队列您可能认为您能够通过一个简单的数据库表(一个应用程序往其中写入数据,另一个应用程序 从中读取数据)来应用消息队列。消息队列平台更为稳定,因为它们通常拥有自己的安全机制、 事务支持及其它功能。传输消息的路由功能是它的一个关键应用。MSMQ 提供各种消息队列平 台。MSMQ 简介简介MSMQ 是 Windows 2000、Windows XP、Windo

2、ws Server 2003 的一个组件,并将继续 包含在 Windows Vista 和以后的 Windows 服务器中。即使目标接收应用程序没有运行,或 运行发送或接收应用程序的计算机没有联网,协同合作的应用程序仍能利用 MSMQ 在彼此之 间发送和接收消息。在到达目标队列之前,消息由 MSMQ 存储并转发。接收应用程序能够从 队列中恢复数据。MSMQ 之类消息队列的主要特点在于它分离发送和接收应用程序,使其不必同时运行。这意味 着一个应用程序能够把数据存放在队列中,而不用理会队列中的项目是否被传送到接收应用程 序。MSMQ 是 Windows 的一个可选组件,只需通过 Windows 控

3、制面板的添加或删除 Windows 组件向导就可进行安装。MSMQ 有两种配置模式:域模式或工作组模式(只使用私有队列)。 MSMQ 安装完成后,立即就可以在.NET 应用程序中运行。MSMQ 交互交互开发基于消息的应用程序从队列开始。MSMQ 包含四种队列类型:外发队列外发队列:消息发送到目的地之前,用它来临时存储消息。 公共队列公共队列:在主动目录中公布。整个网络各种服务器上的应用程序能够通过主动目录找到并应用公共队 列。 私有队列私有队列:这些是本地服务器上的队列,对其它服务器无效(因此这些队列不在主动目录中公布。) 系统队列系统队列:包含日记队列(由系统生成)、死队列和事务型死信队列。

4、死消息无法传送。 System.Messaging 命名空间执行 MSMQ 的编程操作。这个命名空间有两个主要的对象:Message:队列发送或读取的实际消息或数据。 MessageQueue:接收/发送消息的 MSMQ 消息队列。 MSMQ 编程编程建立一个队列是应用 MSMQ 的第一步。您可以通过 Windows 计算机管理控制台中的消息队列选项完成 这一操作,或者自己编程建立一个队列。列表 A 中的 C#代码建立了一个新的私有 MSMQ 消息队列(如 果不存在队列),并同时创建一条消息。代码应用 MessageQueue 类的 Exists 方法来确定是否存在一个名为 TechRepub

5、lic 的私有队列。如存 在,它用现有队列示例这个 MessageQueue 对象;否则,就建立一个新队列。新的 Message 对象用来向队列发送一条消息。它的 Label 属性指定在 MSMQ 控制台中显示的消息标题, 其主体包含存放在队列上的项目内容。在这种情况下,我只发送文本,但您能够使用任何类型的对象。 MessageQueue 类的 Send 方法向队列发送消息。列表 B 中是对应的 VB.NET 代码。下一步即从队列中读取消息。这是一个简单的过程,应用 MessageQueue 类的 Receive 方法即可。如 果队列中存在消息,Receive 方法就返回一个消息对象;否则,它

6、等待一条消息出现(您可以设置一个 时间期限)。从队列中恢复对象需要预先知道它的类型。MessageQueue 类的 Formatter 属性允许您轻松指定被恢复对象的类型。下面的简单例子仅使用文本, 所以它应用 System.String。在列表 C 中,C#代码从测试队列中读取消息。提交给 Receive 方法的 TimeSpan 对象指定异常出现时系统的等待时间。接下来设置这个例子中的 Formatter 方法,对象被转换成字符串读取前面存储的文本。Receive 方法从队列中读取消息,它的值 显示在控制台中。在 try 块的最后部分,队列关闭。轻松应用消息轻松应用消息MSMQ 组合 Wi

7、ndows 和.NET 的 System.Messaging 命名空间,使您可以方便地在.NET 应用程序中 利用消息。消息提供一种在企业应用程序中异步发送并接收消息(数据)的强大工具。以下试文章来源 http:/ 三、发送信息1、发送简单消息在消息发送前,首先要实例化 MessageQueue 的一个实例并指定其所对应的队列。如下代 码/实例化 MessageQueue,并指向现有的一个名称为 VideoQueue 队列MessageQueue MQ = new MessageQueue(“.private$VideoQueue“);MQ.Send(“消息测试“,“测试消息“);(代码片断

8、1)2、发送复杂消息VideoPath 是将要被当作消息的 Boby 来进行传递的类型,其定义如下:using System;namespace Message.BussinessSerializablepublic class VideoPathstring _sourceFilePath = string.Empty;string _targetFilePath = string.Empty;public VideoPath()public VideoPath(string sourceFilePath,string targetFilePath)this._sourceFilePath

9、= sourceFilePath;this._targetFilePath = targetFilePath;public string SourceFilePathgetreturn this._sourceFilePath;setthis._sourceFilePath= value; public string TargetFilePathgetreturn this._targetFilePath;setthis._targetFilePath = value; (代码片断 2)对该类的要求是,该类必须要有一个默认无参的公共构造函数,所有属性必须是可读写的, 且该类必须可以被序列化。利

10、用 Message 将消息发送到队列中。MessageQueue MQ = new MessageQueue(“.private$VideoQueue“);VideoPath VPath = new VideoPath(Path.Combine(Server.MapPath(“.“),“Videooutput.wmv“),Path.Combin e(Server.MapPath(“.“),“Flvoutput.flv“);System.Messaging.Message message = new System.Messaging.Message();message.Label = “视频转换

11、所用消息“;message.Body = VPath;MQ.Send(message);(代码片断 3)四、接收消息1、接收简单类型的消息2、接收复杂类型的消息对于“代码片断 3”所示的消息,在接收时可按如下方法:MessageQueue MQ = new MessageQueue(“.private$VideoQueue“);/调用 MessageQueue 的 Receive 方法接收消息System.Messaging.Message message = MQ.Receive( TimeSpan.FromSeconds(5);if ( message != null )message.F

12、ormatter = new System.Messaging.XmlMessageFormatter(new string“Message.Bussiness.VideoPath,Message“);VideoPath Vpath = (VideoPath)message.Body;Response.Write(Vpath.SourceFilePath);elseResponse.Write(“没有找到消息!“);需要注意的是,如果消息是一个自定义类型对象时,必须指定 Message 的序列化器,即 Formatter 属性。不合适的 Formatter 是无法正确反序列化消息的。姜敏 关注

13、 - 8 粉丝 - 30 荣誉:微软社区精英 关注博主1 0 (请您对文章做出评价) 上一篇:超好玩的 js 下一篇:自定义控件开发之-自定义视图状态 posted on 2008-04-12 20:26 姜敏 阅读(2245) 评论(0) 编辑 收藏 所属分类: ASP.NET2.0注册用户登录后才能发表评论,请注册用户登录后才能发表评论,请 登录登录 或或 注册注册,返回博客园首页返回博客园首页。 IT 新闻: 将 Win7 笔记本变成无线路由器的工具 Connectify 郭台铭:现在感到有一种负罪感 传联通已铺货 3G iPad 下周或通过入网审批 iPhone 4 白色版色差问题仍未

14、解决 Windows Live Spaces:越走越窄的空间 更多 IT 新闻. 知识库最新文章知识库最新文章: 让浏览器上位 数码设备发展的核心:分离 操作系统的争斗 大数据量,海量数据 处理方法总结 谈 SOA 服务的设计粒度网站导航: 博客园首页 IT 新闻 个人主页 闪存 程序员招聘 社区 博问 China-pub 计算机图书网上专卖店!6.5 万品种 2-8 折! China-Pub 计算机绝版图书按需印刷服务相关搜索相关搜索: ASP.NET2.0 最简洁阅读版式:最简洁阅读版式: .NET 中的消息队列 粉丝 - 30 关注 - 8 我的主页 个人资料 我的闪存 发短消息日日一一

15、二二三三四四五五六六303112345678910111213141516171819202122232425262728293012345678910搜索搜索常用链接常用链接我的随笔 我的空间 我的短信 我的评论 更多链接我参与的团队我参与的团队数据库团队(0/0) WCF 技术研究团队(0/0) 开发团队(0/0) 微软社区精英(0/0) 随笔分类随笔分类ASP.NET MVC(8)ASP.NET2.0(62)KOF97(6)LINQ(7)MOSS(10)SQL SERVER 2005(20)WCF(5)翻译(1)非编程技术(4)控件开发(10)设计模式(23)转载(15)随笔档案随笔档案2010 年 9 月 (1)2010 年 8 月 (2)2010 年 7 月 (1)2010 年 6 月 (3)2010 年 5 月 (2)2010 年 4 月 (5)2010 年 3 月 (6)2010 年 1 月 (3)2009 年 12 月 (2)2009 年 9 月 (3)2009 年 8 月 (7)2009 年 7 月 (1)2009 年 6 月 (5)2009 年 5 月 (7)2009 年 4 月 (7)2009

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号