文档章节

MSMQ初探

zerobyte
 zerobyte
发布于 2016/04/19 20:49
字数 516
阅读 56
收藏 0

There are two main ways to set up Microsoft Message Queue Server (MSMQ) 2.0 on a Windows 2000 computer - Workgroup or Directory mode. This is determined when configuring MSMQ for the first time. To determine whether your MSMQ 2.0 is configured in Workgroup or Directory mode, check the following registry subkey: HKLM\SOFTWARE\Microsoft\MSMQ\Parameters A value named "Workgroup" with a value of 1 (0x1) indicates that MSMQ 2.0 was installed in Workgroup mode.

MSMQ有两种安装方式(Workgroup,Directory mode),两种模式的区别见底部参考链接 在win10环境下查看注册表路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Workgroup

Being part of a domain is a pre-cursor for installing MSMQ in AD-integrated mode. It doesn't guarantee MSMQ IS installed in AD-integrated mode. MSMQ will install in workgroup mode if:

  • AD integration was not selected as a setup option
  • AD integration was selected but failed to initialise; check event logs

如上所述,MSMQ的安装模式会默认为workgroup,不过我在安装的时候已经勾选了MSMQ节点下的所有选项,但是显示的还是workgroup模式 当我尝试使用自有代码新建、操作message queue时,会遇到如下错误:

A workgroup installation computer does not support the operation.

这表明我尝试使用AD模式下才能有的特性,比如:

公共队列必须在Active Directory模式下使用。因此是无法使用类似MessageQueue.GetPublicQueues()获取公共队列

所以如果你也是workgroup模式,发现网上或者书上例子跑不通的话,都可以尝试去操作私有的队列,这里有个操作不同类型队列的路径表还是比较有用:

队列类型语法
公有队列MachineName\QueueName
私有队列MachineName\Private$\QueueName
日志队列MachineName\QueueName\Journal$
计算机日志队列MachineName\Journal$
计算机死信队列MachineName\DeadLetter$
计算机事务死信队列MachineName\XactDeadLetter$
string path = @".\private$\MyNewPrivateQueue";
if (MessageQueue.Exists(path))
{
     var queue = new MessageQueue(path);
     Console.WriteLine("open existing queue");
     Console.WriteLine(queue.Label);
     queue.Send("Sample Message", "Label");
}
else
{
     Console.WriteLine("Queue not existing");
     var queue = MessageQueue.Create(path )
}

另外还可以使用Format方式打开队列

new MessageQueue(@"FormatName:Public=xxx-xx--xxx.....")

参考: Why does MSMQ think I'm on a workgroup computer?

How to determine if MSMQ 2.0 is installed in Workgroup or Directory mode

MSMQ

Information about Workgroup mode and about Domain mode in Microsoft Message Queuing

© 著作权归作者所有

zerobyte
粉丝 0
博文 19
码字总数 7224
作品 0
个人站长
私信 提问
队列工厂之(MSMQ)

最近vs2017神器正式版发布让人很是激动,vs2017支持了很多语言的开发,从前端-后端-底层的支持,堪称是工具中的神器;netcore我喜爱的架构之一也得到了大力的宣传,应群友的邀请将在队列工厂...

神牛步行3
2017/05/09
0
0
【c#】队列(Queue)和MSMQ(消息队列)的基础使用

首先我们知道队列是先进先出的机制,所以在处理并发是个不错的选择。然后就写两个队列的简单应用。 Queue 命名空间 命名空间:System.Collections,不在这里做过多的理论解释,这个东西非常的...

YanBigFeg
2018/09/19
0
0
MSMQ消息广播

安装配置MSMQ消息广播,并验证是否可以发送广播消息,过程实录。 1. 安装MSMQ with broadcasting support 选择安装“消息队列”,并在子选项中选择“多播支持”一起安装。 2. 注册表修改Mul...

yuanhuan_2005
2015/10/18
0
0
ASP.NET中进行消息处理(MSMQ) 三

在本文的前两篇文章里对MSMQ的相关知识点进行了介绍,很多阅读过这前两篇文章的朋友都曾问到过这样一些问题: 1、如何把MSMQ应用到实际的项目中去呢? 2、可不可以介绍一个实际的应用实例? ...

吞吞吐吐的
2017/10/05
0
0
mule 使用MSMQ的trangsport

您好!看到您的技术博客对mule esb写的很好,我也是研究mule的,现在遇到一个问题,请帮忙解决,就是现在mule无论是商业版还是社区版都没有提供MSMQ的transport,请问能用什么方式连接到MSM...

冯志永
2012/03/20
490
2

没有更多内容

加载失败,请刷新页面

加载更多

Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
55分钟前
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
今天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
今天
2
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部