MSMQ消息从出站队列中消失,但从不到达入站队列 [英] MSMQ messages disappear from outbound queue but never arrive in the inbound queue

查看:93
本文介绍了MSMQ消息从出站队列中消失,但从不到达入站队列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在新的内部Cloud上设置现有应用程序时遇到了一个奇怪的问题.

I have a strange issue setting up an existing application on our new internal Cloud.

我有一个简单的消息传递系统,该系统将消息从一个服务器(服务器1)推到另一台服务器(服务器2)上的MSMQ上.邮件从出站消失,但从不出现在入站队列中.

I have a simple messaging system that pushes a message from one server (Server1) onto a MSMQ on another server (Server2). The messages disappear off the outbound but never appear in the inbound queue.

当我使Server2 msmq脱机时,消息将在Server1上累积.在Server2上重新启动Msmq会使Server1的出站队列中的消息消失-但该消息仍然永远不会到达Server2.

When I take Server2 msmq off line the messages build up on Server1. Restarting Msmq on Server2 causes the messages in the outbound queue on Server1 to disappear - but the message still never arrives at Server2.

详细信息:

  1. MSMQ是在工作组模式下设置的,因为这是虚拟网络的要求.
  2. 队列是私有的.
  3. 权限设置为允许某些用户访问.

任何人都对为什么发生这种情况或如何找到问题有任何想法.

Has anybody any ideas on why this is happening or how I could track down the issue.

推荐答案

我以前在使用直接格式名称的情况下看到过这种情况,将其设置为类似的格式

I have seen this in the past with the direct format name where it was set to something like

DIRECT = 操作系统:192.16.8.0.1 \ PRIVATE $ \ MyQueue

DIRECT=OS:192.16.8.0.1\PRIVATE$\MyQueue

我应该在其中指定 DIRECT = TCP :192.168.0.1 \ PRIVATE $ \ MyQueue

where I should have specified DIRECT=TCP:192.168.0.1\PRIVATE$\MyQueue

请参阅: http://msdn.microsoft. com/en-us/library/windows/desktop/ms700996(v = vs.85).aspx

@John Breakwell在这里

@John Breakwell had noted here http://blogs.msdn.com/b/johnbreakwell/archive/2010/01/22/why-does-msmq-keep-losing-my-messages.aspx:

用于处理消息的服务器名称与目标计算机不匹配 当MSMQ通过网络接收到一条消息时,它始终会验证此计算机是正确的收件人.这是为了确保类似DNS错误配置的操作不会导致邮件传递到错误的位置.除非正确设置了IgnoreOSNameValidation注册表值,否则将丢弃这些消息.例如,您可能要使用面向Internet的MSMQ服务器来执行此操作,在Internet上,MSMQ客户端可见的域和服务器名称通常与真实的域名和服务器名称没有相似之处(出于良好的安全原因).

Server name used to address message doesn't match destination machine When MSMQ receives a message from over the wire, it always validates that this machine is the correct recipient. This is to ensure that something like a DNS misconfiguration does not result in messages being delivered to the wrong place. The messages are, instead, discarded unless the IgnoreOSNameValidation registry value is set appropriately. You may want to do this with an Internet-facing MSMQ server, for example, where the domain and server names visible to MSMQ clients on the Internet often bear no resemblance to the real ones (for good security reasons).

这篇关于MSMQ消息从出站队列中消失,但从不到达入站队列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆