首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏张善友的专栏

    MSMQ 与ESB

    MSMQ从NT开发就有了,最新版本是4.0,MSMQ 在各个操作系统的对应版本: MSMQ版本 操作系统 1.0 Windows NT4, Windows 95/98/Me 2.0 Windows 2000 , http 转发等特性.对于事务的支持, msmq 支持一下两种类型的事务. 1. MSMQ4.0在事务支持方面的得到了改进,它允许在不同的机器之间使用事务来接受消息. en-us).aspx MSDN Code 上有一个SOA'izing MSMQ with WCF (and Why It's Worth It),是学习WCF和MSMQ的一个我所看到的最好的教程。 Yoel's Microsoft Message Queue (MSMQ) space http://msmq.spaces.live.com/

    1.1K60发布于 2018-01-31
  • 来自专栏一个爱瞎折腾的程序猿

    MSMQ队列学习记录

    微软消息队列-MicroSoft Message Queue(MSMQ) 使用感受:简单。 一、windows安装MSMQ服务 控制面板->控制面板->所有控制面板项->程序和功能->选中安装 ? 然后可在计算机管理-->服务和应用程序->消息队列查看队列信息 ? 二、C#中使用MSMQ 使用MessageQueue类操作MSMQ,其在System.Messaging命名空间下,需要添加引用 定义的接口 public interface IMessageSender

    90820发布于 2018-09-14
  • 来自专栏菩提树下的杨过

    msmq发送速度的测试

    在一些并发量比较高的"中小型"应用中,如果短期内有大量的数据插入,利用msmq中转是一个不错的选择(petshop就是这么干的),想知道msmq一秒钟内到底能发多少条记录吗?  

    2.1K90发布于 2018-01-23
  • 来自专栏c#开发者

    Msmq设计文档(赋源代码)

    Msmq设计文档 文件状态: [√] 草稿 [  ] 正式发布 [  ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作    者: 阿新 完成日期: 2005-8-18 1.0 文档说明: 1.1文档目的 介绍了MSMQ的基本编程(如存储和接收消息)和基本的管理功能(如创建和删除队列)。 虽然使用.Net API来是非常方便和简单的,但是在实际的MSMQ项目中,需要了解消息队列作为架构的概念。通过使用MSMQ,系统会更加松散耦合,因此更加自治(autonomous)。 因此,在设计新的分布式应用程序时,建议遵守面向服务架构(Service-Oriented Architecture)的基本思想:通过显式定义边界、创建自治服务,让MSMQ来负责交互部分。 “消息队列(MSMQ)”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。

    1.5K80发布于 2018-04-13
  • 来自专栏dotNET编程大全

    C# 消息队列之MSMQ

    首先说一下,消息队列 (MSMQ Microsoft Message Queuing)是MS提供的服务,也就是Windows操作系统的功能,并不是.Net提供的。 消息队列(MSMQ)技术使得运行于不同时间的应用程序能够在各种各样的网络和可能暂时脱机的系统之间进行通信。 应用程序将消息发送到队列,并从队列中读取消息。 MSMQ服务默认是关闭的,(Window7及以上操作系统)按以下方式打开 1、打开运行,输入"OptionalFeatures",钩上Microsoft Message Queue(MSMQ)服务器。 我理解的MSMQ MSMQ可以被看成一个数据储存装置,就如同数据库,只不过数据存储的是一条一条的记录,而MSMQ存储的是一个一个的消息(messsge)。 MSMQ一个重要的应用场景就是离线信息交互,例如,我们在给朋友发送邮件,而此时朋友并未登入邮箱,这个时候我们的邮件就可以发到邮件服务器的MSMQ队列中,当朋友登入邮箱的时候,系统在从服务器的MSMQ队列中取出

    1.3K30发布于 2021-11-01
  • 来自专栏c#开发者

    实现MSMQ消息加密的安全实践

    实现MSMQ消息加密的安全实践 消息加密的工作原理 消息应用程序发送方对消息进行加密后发送到目标计算机的消息队列中,然后由目标计算机上的应用程序接收消息队列中的消息进行解密。

    1.1K30发布于 2019-02-13
  • 来自专栏魂祭心

    原 WCF学习之旅----基础篇之MSMQ

                //        Console.WriteLine("公共队列{0}的路径为{1}",mq.Label, mq.Path);             //        mq.Send("MSMQ                                 Console.WriteLine("私有队列{0}的路径为{1}", mq.Label, mq.Path);                                 mq.Send("MSMQ

    67440发布于 2018-05-17
  • 来自专栏c#开发者

    MSMQ突破4M限制的方法

        在默认情况下msmq 3.0(windows xp ,windows 2003)最大单个消息(Message size)大小4M;(包括正文和全部指定属性的消息的大小不能超过 4 MB。 但对于一些特别少数的应用仍然存在大报文的需求,而msmq作为一个消息中间件有很多优势。所以我们还是要想办法使用他,或是扩展他的功能。     1.通过修改注册表(regedit)HKLM\SOFTWARE\Microsoft\MSMQ\Parameters\ 加添一个MaxMessageSize DWORD值大小默认4M(0x00400000 //release queue resources                 queue.Close();             }         }     3.使用BizTalk MSMQ

    2.2K40发布于 2018-04-12
  • 来自专栏跟着阿笨一起玩NET

    通过内存盘提高MSMQ的消息吞吐能力

    转载:http://www.ikende.com/blog/00f2634be4704b79a3e22439edeb1343 由于MSMQ的消息交互都需要对磁盘进行读写操作,所以提高MSMQ的消息吞吐能力相对比较有效的方法就是提高磁盘读写能力 .可以简单地把MSMQ的消息,日志等文件存储到不同的磁盘来降低MSMQ对一个磁盘IO依赖从而达到更高的读写效能.由于MSMQ一般都是存储流水数据,如果消息结构比较少和消费积累量不高的情况把MSMQ存储放到内存则是一个非常不错的选择 ,这样能够大大提高MSMQ的读写效能(缺点:断电部分数据存在丢失).下面针对MSMQ内存存储的一些实现和简单测试. 更改MSMQ存储路径 当内存盘构建完成后你只需要把MSMQ的文件存储路径指向内存盘即可. ? 性能测试对比 MSMQ的存储指向内存盘后,其实整体的读写效率是不是会提高呢? 这个测试结果也说明了一个问题,如果想提高MSMQ的吞吐能力,一个读写效率高的磁盘是比较重要的.

    98120发布于 2018-09-20
  • 来自专栏大内老A

    我的WCF之旅(12):使用MSMQ进行Reliable Messaging

    我们今天就来谈谈在WCF中如何使用MSMQMSMQ不仅仅是作为支持客户端连接工具而存在,合理的使用MSMQ可以在很大程度上提升系统的Performance和Scalability。 我们先来看看MSMQ能给我们带来怎样的好处: 1.MSMQ是基于Disconnection MSMQ通过Message Queue进行通信,这种通信方式为离线工作成为了可能。 2.MSMQ天生是One-way、异步的 在MSMQ中,Message始终以One-way的方式进行发送,所以MSMQ具有天生的异步特性。 二、 MSMQ在WCF的运用 在WCF中,MSMQ提供的数据传输功能被封装在一个Binding中,提供WCF Endpoint之间、以及Endpoint和现有的基于MSMQ的Application进行通信的实现 这是Client和Service通信的图示: 三、MSMQ和Transaction MSMQ提供对Transaction的支持。

    78230编辑于 2022-05-09
  • 来自专栏c#开发者

    解决msmq接收远程主机私有队列消息的问题!

    System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using MSMQ  mq=mqinfor.Open(MSMQ.MQACCESS.MQ_SEND_ACCESS.GetHashCode(),MSMQ.MQSHARE.MQ_DENY_NONE.GetHashCode());             MSMQ.MSMQMessageClass msg=new MSMQMessageClass();             msg.Label="activeX Test";  mq=mqinfor.Open(MSMQ.MQACCESS.MQ_RECEIVE_ACCESS.GetHashCode(),MSMQ.MQSHARE.MQ_DENY_NONE.GetHashCode( ));                              MSMQ.MSMQTransactionClass MQ_NO_TRANSACTION=new MSMQTransactionClass

    2.7K70发布于 2018-04-13
  • 来自专栏大内老A

    我的WCF之旅(13):创建基于MSMQ的Responsive Service

    Responsible Service 我们知道MSMQ天生就具有异步的特性,它只能以One-way的MEP(Message Exchange Pattern)进行通信。 下图简单表述了基于MSMQ的WCF Service中Client和Service的交互。 ? 但是在有些场景 中,这是无法容忍的。再拿我在上一篇文章的Order Delivery的例子来说。 但是我们说过MSMQ天生就是异步的,我们只有采取一种间接的方式实现“曲线救国”。 我们的解决方案是:在每个Client Domain也创建一个基于MSMQ的本地的WCF Service,用于接收来自Order处理端发送的Acknowledge Message。 对于处理Order的Service来说,在向Client端发送Acknowledge Message的时候,它必须要知道该Order对应的Client的Response Service的MSMQ的Address

    99770发布于 2018-02-07
  • 来自专栏软件工程师Michael

    如何使用MSMQ进行分布式事务处理?

    要使用 MSMQ 进行分布式事务处理,首先需要创建一个 MessageQueueTransaction 的对象,并使用 Begin 调用以启动 MSMQ 的内部事务处理。

    20710编辑于 2024-11-14
  • 来自专栏c#开发者

    MSMQ消息大于4MB限制的解决办法

    MSMQ 消息发送大于 4 导致 System.Messaging.MessageQueueException Mb。 这些内存映射文件存储队列所在计算机上 MSMQ\Storage 文件夹中。 解决方案 为了解决这个限制您应该 brake 信息到小数据块 ; 并 多部分邮件 中发送。 如 MSMQ 协议不支持多部分邮件, 您需要建立自己算法来发送者和接收者之间交换它们。 许多技术能应用于解决此问题。 2) 组是 MSMQ 消息包含一个多部分消息需要他人标识。  /// <summary>  /// This example shows how to send and receive Files larger than 4 Mb. using MSMQ

    1.5K130发布于 2018-04-13
  • 来自专栏菩提树下的杨过

    msmq3.0中使用http协议发送消息

    1.先声明: msmq3.0仅在winxp和win2003以上系统支持,如果windows vista系统,据说已经开始支持msmq4.0了 2.为什么要使用http协议发送消息 访问internet 远程发送消息时,msmq2.0以上就已经开始支持tcp方式了,但是如果外网的服务器与发送端之间有防火墙或其它网络设备隔离,或者服务器上的tcp所需要的端口未开放,tcp方式将无法发送,而http协议使用的是默认的 80端口,一般服务器都会开放这一端口,另外只有http协议可以穿透防火墙 3.msmq3.0的安装问题 在windows xp上安装消息队列时,默认情况下msmq已经安装了http协议支持,而windows2003 上,默认安装的消息队列是没有http支持的,需要在"添加/删除 windows组件"-->"应用程序服务器"-->"消息队列"-->"详细信息"中把"MSMQ http支持"勾中 另外要说明的是msmq3.0 在安装过程中,需要在iis的默认站点(即标识为W3WVC1,msmq在安装中定死了这一标识)中创建msmq的虚拟目录,如果你不幸把iis的默认站点删除了,就无法正确安装msmq3.0的http支持(既使你再新建一个默认站点也没用

    2.5K80发布于 2018-01-22
  • 来自专栏菩提树下的杨过

    msmq在Internet上访问的问题(只能发送,不能接收)

    今天测试了一下,message queue的private队列,在internet上可以发送,只要知道服务端的IP地址即可(当然服务端的队列权限要给足) 注意:队列path的引用必须参照下面的格式 FormatName:DIRECT=tcp:222.23.225.3\Private$\Demo 结论: 在客户端与服务端不在同一台机器上时,只能发送,不能接收(即不能远程接收internet的private队列) 远程不能接收的解决办法: 1。如果服务端有控制权限,可以在服务端布署一个程序,功能为:实时监听本机

    1.1K100发布于 2018-01-22
  • 来自专栏跟着阿笨一起玩NET

    使用windows服务和MSMQ和进行日志管理(解决高并发问题)

    然后就可以写我们的代码了,我们的服务需要实时监视MSMQ的队列中有没有记录,如果有,就向数据库中插入 核心代码如下 ///

    /// 接收来自MSMQ的消息,并保存到数据库 /// < void PrintAll() { Console.WriteLine("{0} {1} {2}", ID, Info, OccerTime); } } 为了使服务实时对MSMQ

    1.8K10发布于 2018-09-19
  • 来自专栏网络安全技术点滴分享

    Microsoft MSMQ高危远程代码执行漏洞(CVE-2024-30080)深度解析

    (MSMQ) 中发现了一个关键的远程代码执行漏洞,被分配编号 CVE-2024–30080。 攻击者可以通过 HTTP 向 MSMQ 服务器快速连续发送一系列特制的 MSMQ 数据包来利用此漏洞,从而导致远程代码执行。此漏洞不需要任何用户交互或提升的权限。 检查“MSMQ HTTP 支持”功能是否启用,以及计算机上是否有名为“消息队列”的服务正在运行。常见问题攻击者如何利用该漏洞? 要利用此漏洞,攻击者需要通过 HTTP 向 MSMQ 服务器快速连续发送一系列特制的 MSMQ 数据包。这可能导致服务器端远程代码执行。修复官方修复: 微软已发布补丁来修复此漏洞。 建议应用更新: 确保所有运行 MSMQ 服务的系统都更新到包含 CVE-2024–30080 修复程序的最新版本。禁用未使用的服务: 如果不需要 MSMQ,请禁用该服务以减少攻击面。

    27710编辑于 2026-01-01
  • 来自专栏老男孩成长之路

    你不知道吧,其实Redis实现消息队列比MSMQ更方便

    简单的说就是数据存储到一个空间里(可以是内存,也可以是物理文件),先存储的数据对象,先被取出来,这与堆栈正好相反,消息队列也是这样,将可能出现高并发的数据进行队列存储,并按着入队的顺序依次处理,实现消息队列的工具有很多,如微软的MSMQ : MessageQuene.CurrentChatModels.Chat; ViewData["MSMQ"] = redisClient.ListRange("MessageQuene")

    71610发布于 2019-12-02
  • 来自专栏Windows技术交流

    启动IIS站点时报错WAS未启动

    aspnet_regiis -i 可是执行iisreset还是报错 3、查看依存关系 查看w3svc依赖的服务都启动了 查看WAS的依存关系,发现有3个Net.打头的服务未运行 手动挨个启动,最后只剩下Net.Msmq 看描述:跟msmq有关 4、承上安装msmq,问题解决 powershell查询是否已安装msmq,发现没装,然后安装msmq(注意win7和2008R2上的powershell是Add-WindowsFeature ,≥2012或win8的才是Install-WindowsFeature 安装上msmq后问题解决 ①查询msmq未安装 C:\Users\Administrator>powershell PS C:\ Users\Administrator> PS C:\Users\Administrator> Get-WindowsFeature -name msmq Display Name Name ----- ------- ---- [ ] 消息队列 MSMQ ②安装msmq PS C:\Users\Administrator> get-windowsfeature -name msmq|Add-WindowsFeature

    6.5K20编辑于 2024-01-17
领券