我正在尝试调试使用 Microsoft 消息队列 (MSMQ) 的应用程序。我可以使用远程桌面连接调试开发服务器上的队列,但不能在本地桌面上重复该过程。如果可能,我更愿意在本地桌面上使用应用程序。
我的开发服务器运行的是 Windows Server 2003 R2 企业版。我的本地机器运行的是 Windows 7 专业版。
要使用远程桌面连接调试队列(请参阅第一个屏幕截图):
compmgmt.msc。
在我的本地桌面上重复这个过程(见第二个屏幕截图):
runas /user:DEV\admin_me "mmc compmgmt.msc /computer:\\DEVSERVER"。(使用 runas 因为我的本地桌面帐户是 DEV\me,而不是 admin)。
我是否遗漏了什么,或者是使用远程桌面连接的唯一方法?
是否可以在 Windows 8(.1) 上从 PowerShell启用MSMQ?如果是这样,如何做到这一点?
我想在故障转移系统中设置 MSMQ。
我没有共享存储设置(硬件不可用 - 预算),但我有三个运行 Windows Server 2016 的 dl380。
我想使用仲裁服务器设置故障转移。
这个设置可以吗?
我正在尝试通过我机器上的计算机管理来调整消息队列属性(特别是消息存储限制)。它失败并显示以下消息:
的属性无法设置。
错误:访问被拒绝。
我使用属于本地管理员组的帐户登录。我可以执行我尝试过的所有其他管理任务。什么可能阻止我更改这些设置?
平台:Windows Vista Business SP2 (x64)
我们有一个相当大的 MSMQ 环境设置,今天决定停止。
(在 vSphere 4.0 Update 1 下一切都是虚拟机)
有 8 个 Web 服务器从网络上的客户端接收数据。这些机器都安装了 MSMQ,只需将 MSMQ 消息发送到主 MSMQ 服务器即可。消息当前堆积在出站队列中。这些机器是带有 2 GB RAM 和 2 个 vCPU 的 Windows 2008 网络版。
我们有一个集群 MSMQ 服务器(Windows 集群服务器),它从 8 个 Web 服务器获取消息。队列中的数据量没有限制。硬盘驱动器为 50 Gigs,并且有 46 Gigs 的可用空间。这些机器是 Windows 2008 企业版,具有 8 GB 的 RAM 和 4 个 vCPU。集群曾经有 2 个 vCPU,但 CPU 负载达到 100%,所以我将 Windows 集群的两个节点增加到 4 个 vCPU。
有 4 个应用服务器从队列中读取消息并处理它们。
通常这一切都很完美,但今天不行。
今天早上一切都运行得很慢。8 个 Web 服务器当前显示出站队列中多达 30 万条消息。集群服务器当前在队列中显示超过一百万条消息(有些低至 20 万条)。
如果我查看 8 个 …
将此发布在 StackOverflow 上,但我认为它可能与这群人更密切相关。
我在向服务器上的第二个 DNS 名称发送 MSMQ 消息时遇到问题。如果我们为同一台服务器发送 IP,我们很好,但这不是我们在架构上要去的地方。关于为什么 MSMQ 会关心它收到的名称的任何想法?
这是我们的例子:
服务器信息:物理服务器 load-int-01,具有与之关联的第二个 IP 和 DNS 名称。第一个 IP/DNS: load-int-01, 有 IP10.0.10.10第二个 IP/DNS: load-intv, 有 IP10.0.10.20
使用的队列路径格式:
FormatName:DIRECT=OS:load-int-01\private$\MyQueue -> 工作正常
FormatName:DIRECT=OS:load-intv\private$\MyQueue -> 返回以下错误:
队列不存在或您没有足够的权限来执行此操作
我们也尝试过使用 IP 地址,两组 IP 都可以正常工作。
FormatName:DIRECT=TCP:10.0.10.10\private$\MyQueue-> 工作正常FormatName:DIRECT=TCP:10.0.10.20\private$\MyQueue-> 工作正常
经常因为我正在调试使用 MSMQ 的 Windows 服务,
我需要查看私有队列......
我打开“计算机管理”,
展开“服务和应用程序”,
然后展开“消息队列”和“
专用队列”……我知道
只需要额外点击几下
就会很累,因为我
确实需要
经常这样做……
某些组件可以在
计算机管理之外打开,例如:
通过开始、运行、eventvwr 的事件查看器。
是否可以对
消息队列执行相同的操作?
谢谢~~格里(洛瑞)
我的问题有点混乱。我有 2 台安装了 MSMQ 的服务器(Windows Server 2008 R2),我想使用服务器 B 在服务器 A 上使用 MessageQueue。当我尝试接收时,它总是抛出消息错误: "Access to message queuing system is denied."。
他们之间的IP。
服务器 A:172.31.23.130
服务器 B:172.31.23.195
FormatName:Direct=TCP:172.31.23.195\private$\queuesource(它适用于发送)
我在 .Net C# 中的代码基本上是这样的:
MessageQueue _sourceQueue = new MessageQueue();
_sourceQueue.Path = "FormatName:Direct=TCP:172.31.23.195\private$\queuesource";
_sourceQueue.Receive(); // << here throw an exception.
Run Code Online (Sandbox Code Playgroud)
实际上,我使用 Private Queue 只是为了避免 Active Directory 的问题。例如,如果服务器 DNS 失败,则所有网络都失败。我不知道该怎么办了。
如果在 MSMQ 专用队列上启用日志,并具有存储限制(例如 100 KB),超过该限制时会发生什么情况?你能配置这种行为吗?
具体来说:
人们似乎暗示设置限制是解决日志增长和超出服务器资源的风险的一种解决方案,但我没有发现任何人解释超出限制时会发生什么。
在我们自己的(非常有限的)测试中,似乎消息只是停止写入日志。(即,当日志队列达到其限制时,旧消息仍保留在日志中,但对于所有未来消息,日志实际上已关闭)。
有没有办法通过批处理或powershell脚本来做到这一点?我正在寻找一种方法来设置几个新服务器。
我在这个主题上发现的唯一一件事让我相信你不能:来自:http : //technet.microsoft.com/en-us/library/cc785060.aspx
只能使用计算机管理、服务和应用程序、消息队列属性中的存储选项卡修改消息存储位置。
编辑 - 我也找到了这篇文章。它列出了一些注册表值,但再次建议不要使用它 http://blogs.msdn.com/b/johnbreakwell/archive/2009/02/09/changed-the-msmq-storage-location.aspx
msmq ×10
powershell ×2
windows ×2
.net ×1
batch-file ×1
failover ×1
journal ×1
performance ×1
permissions ×1
shortcut ×1
windows-8 ×1
windows-8.1 ×1