MSMQ 创建错误:工作组安装计算机不支持该操作/用户的内部消息队列证书不存在

2023-11-25

这让我有点抓狂,所以如果有人能提供帮助,我将非常感激!

我试图将消息从域内的服务器发送到公共队列到域控制器,但出现错误:

“工作组安装计算机不支持该操作。”

我已在域控制器上设置了 MSMQ,并在公共队列文件夹中创建了一个消息队列。

我知道以前也有人问过类似的问题:

为什么 MSMQ 认为我在工作组计算机上?

但我已经尝试了所有建议的方法,但仍然遇到相同的错误。

因此,带您了解我根据建议尝试过的内容:

a) 未选择 AD 集成作为安装选项 - 安装 msmq 时选择了此选项

b) 选择了AD集成但初始化失败;检查事件日志 - 我已检查事件日志,并且收到消息 - 可选择更新 MSMQ-AD 包 MSMQ 服务器包的集成已成功打开。

c) 检查 Active Directory 中的孤立对象 - 我已检查 Active Directory 用户和计算机中的 LostAndFound Directory,以检查 AD 中没有孤立对象

我已遵循以下说明:http://technet.microsoft.com/en-us/library/cc730960.aspx

我还卸载了重新启动并重新安装并再次检查我没有任何孤立的对象。

另外,所有发送消息的服务器都需要安装 msmq 吗?目前我只在域控制器上拥有它,我认为这就足够了。

编辑1:我已将 msmq 添加到发送消息的所有服务器(它们是负载平衡的,因此可以是其中任何一个),它们已经安装了 msmq 但没有公共队列,因此我卸载了重新安装并再次安装(在选择时选中所有相应的框) msmq -目录服务集成/路由服务等..并且它们现在有公共队列我现在收到一个新错误,如下所示:

“用户的内部消息队列证书不存在。”

Edit 2:

我仍在努力解决这个问题,但已经取得了一些进展 - 当我检查我的域控制器的证书颁发机构时,它就在那里,但当我查看 IIS 时,它缺少虚拟目录 CertServ - 请参阅链接以获取解释:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms755466%28v=vs.85%29.aspx

一旦我解决了这个问题,我将为我的每台服务器请求一个计算机证书,如下所示:

http://technet.microsoft.com/en-us/library/cc740173%28v=ws.10%29.aspx

希望这会起作用!

编辑3:好的,由于互联网垃圾的原因,我无法请求证书,但希望这将在接下来的几天内得到纠正。所以我尝试了自我认证,这没有什么区别,并取消了 UseAuthentication = true、UseEncryption = true 并取消选中经过身份验证的框并将加密设置为可选。我不再收到错误消息,这让我相信身份验证有问题(与 Active Directory 相关)但是,即使它没有失败,因为没有显示错误消息并且我希望显示页面在我的网站上显示。我的域控制器公共队列消息中没有消息...

我已经在本地完成了此操作,似乎是当我尝试在导致问题的域中执行此操作时。

Edit 4:

只是想让您知道我在这方面的进展 - 我想确保消息被发送到域控制器,因此我查看了 MSMQ End2End 监控 - 因此在每个 Web 服务器(消息发送自)和事件查看器 > 应用程序和服务日志 > Microsift > Windows > MSMQ > End2End 中的域控制器(消息发送到)我启用了日志记录。

当我尝试在 Web 服务器上再次发送消息时,记录了 2 个 End2End 事件:

  1. ID 为 CN=msmq,CN=ETAILWEB03,CN=Computers,DC=Etail,DC=local\7 的消息已发送到队列 PUBLIC=d7ee680c-11ec-4d9a-aa31-528dcc9b1eba

  2. 通过网络发送的消息

在域控制器上的 End2End 事件中:

  1. 消息通过网络传来

因此,从这里看来消息已经到达,所以我现在想看看消息在哪里丢失了:

https://groups.google.com/forum/?fromgroups=#!topic/microsoft.public.msmq.networking/88FYCvO2YwQ

Edit 5:

好的,如下:

已接收但未传送 MSMQ 消息 Windows 2008 R2

我添加了一个匿名用户,并且能够向队列添加一条消息,这很棒,但我现在需要后退一步,只向应该接收消息的用户提供完全控制权 - 那么网络服务器的用户名是什么以及为了安全起见,我需要对消息进行身份验证,所以回到我之前的问题之一。

Edit 6:

仍在努力解决这个问题,但又更进一步了......

在域控制器(证书颁发机构和接收 MSMQ 所在的位置)上,配置了证书自动注册,并且我在 Web 服务器(发送消息)上运行以下命令 - 运行 - gpupdate /force 并重新启动每个 Web 服务器。

我确保在所有 Web 服务器上都选中了“身份验证”,并在消息队列属性中选择了“正文”。我还更新了所有网络服务器上的证书,以确保它们是最新的我现在收到以下错误:

队列路径名无效。

我查看了以下链接:

http://blogs.msdn.com/b/johnbreakwell/archive/2010/03/24/understanding-how-msmq-security-blocks-rpc-traffic.aspx

Edit 7:

好吧,为了尝试让它工作,似乎 Web 应用程序用户没有被识别,所以在 Web 服务器上,我转到 IIS > 应用程序池 > 高级设置 > 身份并将身份设置为网络服务。完成此操作后,当我运行应用程序时,我不再收到错误消息,但该消息似乎不在我期望的公共队列中,所以我现在将再次查看 end2end 以查看是否可以找到答案它去了哪里。

Fix

将 IIS 设置为网络服务后,我仔细检查了正在发送的消息是否经过身份验证,以及接收消息的域控制器是否已经过身份验证检查。我向公共队列中的每个人授予了完全访问权限,并且成功了!

说实话,一路上经历了很多尝试和错误,但希望这篇文章能对其他人有所帮助——感谢 john B,我读到的关于这个主题的大部分内容都是他以某种形式发布的!


“用户的内部消息队列证书不存在。”

以交互方式登录到将发送消息的每个服务器。
使用运行发送应用程序的用户帐户。
这将为该帐户创建证书,每台计算机一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MSMQ 创建错误:工作组安装计算机不支持该操作/用户的内部消息队列证书不存在 的相关文章

随机推荐