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

ann*_*nna 8 configuration msmq active-directory workgroup

这让我坚持不懈,所以如果有人可以,我会非常感激!

我试图从域中的服务器向域控制器发送消息到公共队列,但我收到错误:

"工作组安装计算机不支持该操作."

我在Domain COntroller上设置了MSMQ,并在Public Queues文件夹中创建了一个消息队列.

我知道之前有一个类似的问题:

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

但我已经尝试了所有建议的东西,但我仍然得到同样的错误.

所以,请带您了解我尝试过的建议:

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

b)选择了AD集成但未能初始化; 检查事件日志 - 我检查了我的事件日志,我有消息 - 可选更新MSMQ-ADIntegration包MSMQ Server包已成功打开.

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

我已按照这些说明操作:http: //technet.microsoft.com/en-us/library/cc730960.aspx

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

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

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

"用户的内部消息队列证书不存在."

编辑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有关)但是,即使它没有失败,因为没有显示错误消息,我希望显示的页面在我的网站上显示.我的域控制器公共队列消息中没有消息......

我已经在本地完成了它的工作,它似乎是当我尝试在导致问题的域中执行它.

编辑4:

只是告诉你我知道我在这方面的进展 - 我想确保消息被发送到域控制器,所以我看看MSMQ End2End监控 - 所以在每个Web服务器上(消息从发送)和在事件查看器>应用程序和服务日志> Microsift> Windows> MSMQ> End2End I启用日志记录中,域控制器(消息被发送到).

当我尝试在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

编辑5:

好的如下:

已收到MSMQ消息但未提供Windows 2008 R2

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

编辑6:

仍在努力解决这个问题,但进一步深入......

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

我确保在所有Web服务器上都选中了Authenticate,并在消息队列属性中选择了Body.我还更新了所有Web服务器上的证书,以确保它们是最新的我现在收到以下错误:

队列路径名无效.

我查看了以下链接:

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

编辑7:

好吧,为了尝试让它工作,似乎Web应用程序用户没有被识别,所以在Web服务器上我去了IIS>应用程序池>高级设置>身份并将身份设置为网络服务.一旦完成,我不再收到错误消息,当我运行我的应用程序,但消息似乎不在公共队列,我希望它是这样,所以我现在再次看看end2end,看看我能不能找到它去了哪里.

固定

将IIS设置为网络服务后,我会仔细检查正在发送的邮件是否已通过身份验证,并且接收邮件的域控制器已经过身份验证检查.我完全访问了我的公共队列中的每个人,它工作正常!

说实话,一路上有很多反复试验,但希望这篇文章可以帮助其他人 - 感谢约翰B,我读过这个主题的大部分内容都是他以某种形式发布的!

Joh*_*ell 0

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

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