`
terryfeng
  • 浏览: 489816 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例

阅读更多

系统: Windows XP

1.安装MSMQ

控制面板—>添加安装程序

clip_image002

2. 配置MSMQ

clip_image004

右键点击新建MQ,属性,可以看到其完整访问路径

clip_image006

3.好了,新建一个ASP.net 的应用程序,并添加引用System.Messaging ,编写代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;

using System.Messaging;

namespace WebAppTestMSMQ
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
           txtPath.Text = ConfigurationManager.AppSettings["path"].ToString();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //完整队列格式为:  计算机名\private$\队列名称 (专用队列)
            MessageQueue mq = new MessageQueue(txtPath.Text.Trim());
            System.Messaging.Message msg = new System.Messaging.Message();
            msg.Body = txtSend.Text.Trim() + " " + DateTime.Now.ToString();

            //消息格式为string
            msg.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });

            try
            {
                mq.Send(msg);
            }
            catch (Exception ex)
            {
                
            }

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            MessageQueue mq = new System.Messaging.MessageQueue(txtPath.Text.Trim());
            //同步接收,直到得到一条消息为止,如果消息队列为空,会一直阻塞
            System.Messaging.Message msg = mq.Receive();
            msg.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
            this.txtReceive.Text = "[" + DateTime.Now.ToString() + "]: " + msg.Body.ToString();

        }
    }
}

其中配置文件中的路径就是之前看到的位置,前面的计算机名也可以是ip地址

clip_image008

F5,运行程序,在发送信息框中输入信息,点击发送,将消息发送到队列,再点击获取消息按钮,从队列中获取消息。

消息的接收又分成同步和异步方式两种,同步接收在规定时间内从消息队列中取出收到的第一条消息,当消息队列中没有消息时,程序处于等待状态;异步接收方式则是定义了一个事件处理函数,当消息队列中第一个消息到达时立即触发该函数。  

在计算机管理中,可以查看队列中的内容

image

关于队列的属性   
        path属性:它可以决定引用队列的三种方式,路径引用、格式名引用、标识引用   
        category属性:标识当前使用的队列的类型。Category是队列所有者定义的GUID值。该GUID值可以有GUID生成工具产生或者是用户自定义的数字值。GUID值是唯一的,这样才可以根据GUID值,把多个消息队列划分为不同的类别(category)。   
       跟发送数据类型相关的属性   
        Formatter属性:决定在一个队列中如何发送和接收消息的顺序,以及可以在一个消息中发送什么样的内容。   
       和队列交互相关的属性   
        DenyShareReceive属性:决定同一时间内只有一个部件能够访问消息队列中的消息。   
        CanRead和CanWrite属性:决定队列是否可以被读取或者是写入。   
        MaximumQueueSize和MaximumJournalSize属性:以千字节为单位设置一个队列(日志队列)的消息最大容纳量。一旦接收的消息到达这个容量,新的消息将不再被接收。   
        一般情况下,消息队列的最大值为消息队列管理员所设置,如果这个值没有控制的话,那么缺省的消息队列最大容量将是无限制的。   
        UseJournalQueue属性::设置是否将收到的消息拷贝到日志消息队列中去。

源代码:msmqtest.rar

 

博客园有一位博友写的很好的,一定要看看:

ASP.NET中使用MSMQ进行消息处理系列文章

分享到:
评论

相关推荐

    微软信息队列

    MSMQ 微软信息队列

    MSMQ微软消息队列收发信息源码

    MSMQ(Microsoft Message Queue)微软消息队列是操作系统中消息通信的基础,也是用于创建分布式、松散连接的消息通信应用程序的开发工具。它与电子邮件很相似,它们都包含多个属性,用于保存消息,消息类型中都指出...

    MSMQ在ASP.NET中应用

    MSMQ(MicroSoft Message Queue)在ASP.NET中的应用

    C#消息队列,windows使用消息队列,Queue消息队列

    依次展开“Microsoft Message Queue (MSMQ) 服务器”、“Microsoft Message Queue (MSMQ) 服务器核心”, 然后选中要安装的消息队列功能的复选框。单击“确定”。 如果系统提示您重新启动计算机,请单击“确定”以...

    实例MSMQ(MessageQueue)

    C#实现微软的消息队列 分客户端和服务端

    Professional MSMQ: Microsoft Message Queue Programming part1

    Professional MSMQ: Microsoft Message Queue Programming

    微软消息队列MSMQ示例

    微软消息队列MSMQ示例,codeproject中的好东西。大家可以研究一下

    在ASP.NET中进行消息处理(一)

    讲 师:邵志东 MSDN特邀讲师 课程简介:MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的...

    在ASP.NET中进行消息处理(二)

    在ASP.NET中进行消息处理(二) 讲 师:邵志东 MSDN特邀讲师 课程简介:MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同...

    msmq.rar_MSMQ CSharp_csharp msmq_message queue_msmq_site:www.p

    在.Net环境下C#编写的Windows Message Queue程序,VS2003调试通过: (1)先安装Message Queuing Services 通过Control Panel,“Add/Remove Programs” – “Add/Remove Windows Components”步骤安装MSMQ。 (2)...

    消息队列(MSMQ)

    Message Queue(微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把自己想要...

    c#\.NET 微软消息队列MSMQ发送工具

    采用.net4.0,winform 开发

    ASP.NET中进行消息处理(MSMQ)

    ASP.NET中进行消息处理(MSMQ)示例源码 包括: 1.MSMQ安装 2.普通读取和接收消息 3.复杂消息发送实例 4.消息传递的优先级 5.事务性消息处理 6.异步消息处理

    MSMQ、RabbitMQ、ActiveMQ消息队列调试工具

    可用于调试MSMQ、RabbitMQ、ActiveMQ三种消息队列 其中MSMQ支持Active、Binary、XML格式(要勾选事务) RabbitMQ支持逐条接发、批量接发、RPC回调模式、新建队列、建立持久化队列、连接测试等功能。

    C#操作MSMQ示例

    MSMQ全称MicroSoft Message Queue,微软消息队列,是在 多个不同的应用之间实现相互通信的一种异步传输模式,【CLR】C#操作MSMQ示例

    微软-消息队列,msmq

    学习微软消息队列的基础教程,包括创建对列,删除对列,发送消息,接收消息

    VC++MSMQ微软消息队列简单使用举例

    微软消息队列,创建队列,发送消息,读取消息

    msmq.rar_C++消息队列_msmq 开发_消息_队列_队列 删除

    消息队列开发,实现消息队列创建\删除,发送回收

    ASP.NET完全入门

    《ASP.NET完全入门》面向初...第七篇“高级应用”——在高级应用一篇中,我们将介绍三个方面的内容:XML在ASP.NET中的应用、三层结构及其应用、以及微软消息队列(MSMQ),这些是作为一个高级应用者所必需掌握的知识。

Global site tag (gtag.js) - Google Analytics