You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2022 MSMQ消息接收异常:消息已抵达但队列未填充

Windows Server 2012向2022推送MSMQ私有队列消息未入库问题排查方案

追踪显示消息已抵达目标服务器但未进入私有队列,且已授予全队列权限,可按以下步骤排查:

  • 检查死信队列
    打开计算机管理 > 服务和应用程序 > 消息队列 > 私有队列 > 系统队列 > 私有死信队列,查看是否有滞留的消息。消息属性中的Delivery Failure和Reason字段会直接说明失败原因,比如身份验证失败、队列类型不匹配等。

  • 验证队列身份验证设置
    右键2022上的目标私有队列 → 属性 → 安全性选项卡,确认是否勾选需要身份验证。若勾选但发送端未提供可信凭证(如非域账号发送、未启用身份验证),消息会被拒绝进入死信队列。可临时取消勾选测试是否恢复正常。

  • 调整MSMQ加密级别兼容性
    Windows Server 2022默认加密级别可能高于2012,导致消息加密不兼容:

    1. 打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters
    2. 新建DWORD值EncryptionLevel,设置为1(无加密,仅用于测试)
    3. 重启Message Queuing服务
      测试成功后,可根据需求调整为合适级别(2=签名,3=加密+签名)。
  • 确认事务性属性匹配
    若发送端使用事务性发送,而目标队列是非事务性的,消息会被丢弃。检查两端队列属性→常规选项卡,确保事务性勾选状态一致(要么都勾选,要么都不勾选)。

  • 检查MSMQ服务账号存储权限
    2022上MSMQ默认以Network Service账号运行,需确认该账号对队列存储目录(默认C:\Windows\System32\msmq\storage)有读写权限:右键目录→属性→安全选项卡,添加或确认Network Service的读取和写入权限。

  • 排查防火墙规则
    虽然消息已抵达,但防火墙可能限制了最终存储环节:打开Windows Defender防火墙,确认启用了Message Queuing、Message Queuing (RPC)、Message Queuing (SMB)的入站/出站规则,或临时关闭防火墙测试。

  • 查看MSMQ事件日志
    打开事件查看器→应用程序和服务日志 > Microsoft > Windows > MSMQ,查看Operational和Admin日志,里面会记录消息处理失败的错误代码和详细原因,比如0xC00E0025(队列不存在)、0xC00E002F(权限不足)。

内容的提问来源于stack exchange,提问作者Vishal Vanga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 17:52:41