做了一些testing,看起来好像我试图发送一个消息到一个队列,用户被拒绝了“发送消息”权限,发送的消息就消失了。 它并不出现在死信队列,传出队列,或任何其他地方,我曾想过看。 发送消息时也不会抛出任何exception。 那个消息正在发生什么? 它真的只是被吃掉了,还是有什么我失踪? 这里是我用来发送消息的代码: var q = new MessageQueue(@"[ComputerName]\Test"); q.Send("foo");
我有一个XP框运行一些MSMQ公共队列。 Windows 7客户端不能连接到这些,但Windows XP客户端可以。 从Windows 7客户端连接到MSMQ队列浏览器程序时,出现以下错误消息: 当build立一个新的XP盒子,在域中注册,安装队列浏览器,一切都很棒。 我还应该注意到,我的Windows 7盒子没有任何问题连接到运行MSMQ的其他XP盒子,只是其中一些(所有运行最新的服务包)。 经过大量的debugging,我似乎将问题隔离到RPC调用。 在使用Queue Explorer和rpcping时,我看到以下问题。 下面提供的示例是通过使用rpcping和以下命令: rpcping -s xp-host-1 -a integrity -u 9 && rpcping -s xp-host-2 -a integrity -u 9 xp-host 1有问题,xp-host-2是没有问题的全新安装。 从wireshark检查数据提供了这种观点。 很显然,最后一次RPC调用成功了,因为您将看到另外两个对第二个主机的调用。 检查数据包显示没有明显的差异,但是当使用队列浏览器对两个不同的服务器(两个XP),我们看到一个区别。 这似乎与身份validation/挑战/响应或某事有关,但我正在努力找出什么。 有没有人有任何想法我可以尝试解决这个问题? 我试图禁用我的客户端上的不同types的身份validationtypes无济于事。 我只试过lanman,ntlm v1,ntlm v2等等。 其他一些事实: 事件日志中没有关于此的信息 MSMQ错误代码没有提供很多信息。 基本上他们的意思是“有些不好,我们不知道是什么”。 如果我使用IP地址而不是主机名,MSMQ不会给出错误,但不允许我查看公共队列。 编辑1更多图片: 它看起来像是创build问题的rpc__mgmt_inq_princ_name请求。 在图片的左侧我尝试连接到主机不工作,在右侧我连接到相同的操作系统。
如何检查Microsoft排队MSMQ是否已在域模式下安装?
我今天早上从我的本地盒子中删除了一个公共队列,然后去重新创build队列。 当我去重新创build它,我得到的消息:错误:具有相同的path名称的队列已经存在 从研究看来,队列被复制到AD中,有时不会被删除。 所以现在ADpipe理员必须删除这个给我,但他们似乎不明白。 那么我怎么能通过这个错误呢?
我们计划开发基于Microsoft Message Queuing(MSMQ)的高可用性系统。 目前我们正在为MSMQ收集高可用性选项。 我们计划使用Windows Server 2008 R2作为底层操作系统。 哪些特定的技术可以使MSMQ服务高度可用? 我们考察了Windows故障转移群集和NLB,但群集似乎有太高的故障转移时间(超过10秒),NLB不支持事务性消息。 有没有人有像VM Ware Fault Tolerance或类似的解决scheme的经验? 您是否知道任何其他解决scheme为MSMQ提供高可用性,同时支持低故障切换时间(<5秒)和事务消息?
我正在尝试使用PowerShell&dism编写我们的应用程序的Web服务器angular色的设置。 应用程序需要MSMQ支持的以下function(为简洁起见,不包括IISfunction):* MSMQ-Container * MSMQ-Server * MSMQ-ADIntegration * MSMQ-HTTP 我可以在Windows 7上使用dism / Online / Enable-Feature安装这些function:xxx很好,但是当我尝试在Windows 2008 R2机器上安装MSMQ-Container时,出现以下错误: 错误:0x800f080c function名称MSMQ-Container未知。 如果我将其忽略,那么function的其他MSMQ将在Windows 2008 R2上正确安装,但在Windows 7上该脚本将失败,并显示以下错误: 错误:50 操作已完成但MSMQ-Serverfunction未启用。 确保首先启用以下父function。 如果已经启用,请参阅日志文件以进一步诊断。 MSMQ容器 我想问题是,什么是MSMQ容器 ,我需要它吗? 如果没有,那么我想我需要自定义脚本来使用W7和W2k8r2上的不同包。
我们最近遇到MSMQ(在工作组中的Windows Server 2008 R2上)停止发送消息的问题。 事实certificate,这是因为MSMQ已经达到了消息存储的限制,因此对可怕的“资源不足”错误的一切作出了回应。 目前为止还不够公平,但是事情依然如此:据我们所知,所有使用光盘空间的消息都是在另一台机器上的一个队列中(我们猜测另一台机器暂时停止接收消息由于我们还没有弄清楚的原因,导致发送MSMQ上的所有内容都被备份)。 所以处理这些消息实际上应该释放光盘空间。 事实上,我们发现,只要我们删除了发送机器上的消息存储限制,就开始发送消息。 在稍后的某个时间点(我们没有看到什么时候,但是这个线程MSMQ继续增长,即使队列中没有消息表明它会在6个小时之后),所有的p *****。占用磁盘空间的mq消息被清理,允许我们恢复存储限制。 对于我们来说MSMQ拒绝发送那些超出存储限制的消息是毫无意义的,当发送这些消息时会释放存储空间。 但是我们所有的证据都是这样的。 任何人都可以确认这是否实际上是如何MSMQ行为?
我有两个域控制器,其中有问题的USN始终是相同的值(当前和原始),而另一个原始USN大约比当前值低6个数字。 这是什么意思? 这怎么可能影响我的应用程序? 以下是原始和现在的USN区分的屏幕截图:
我正在尝试使用Nagios(3.0.1)监视MSMQ队列计数器。 远程服务器正在运行NC_Net。 check_commandconfiguration如下所示: check_command check_nt!COUNTER!-l "\\MSMQ Queue(servername\\private$\\queuename)\\Messages in Queue","%.f messages in MSMQ queue" -w 5 -c 10 这不起作用。 我相信美元符号需要逃脱,而且在解决问题方面遇到困难。 这篇文章build议“$$”即。 check_command check_nt!COUNTER!-l "\\MSMQ Queue(servername\\private"$$"\\queuename)\\Messages in Queue","%.f messages in MSMQ queue" -w 5 -c 10 但是这不起作用。 我已经尝试了一些其他的方法(反斜杠,单引号等)。 有什么build议么? 编辑: 我一直在通过命令行进行一些testing,这是我认为这是造成问题的原因之一。 以下工作: ./check_nt -H hostip -v COUNTER -l "\\MSMQ Queue(Computer Queues)\\Messages in Queue","%.f messages in MSMQ queue" […]
我正在考虑在我们的企业应用程序中使用MSMQ。 我无法find信息的一个领域是灾难恢复。 脚本 服务器机房发生火灾。 所有的设备都被毁坏了,我们需要在几英里外的备份站点运行这些操作。 使用SQL服务器,我们启用了复制function,在备份站点上提供操作数据库的备用副本。 在发生灾难时,我们可以切换到备用站点并继续使用最新的数据库。 使用MSMQ,我想知道如何才能实现相同的复制风格,以便如果服务器上的某个队列突然停止存在,我们应该能够切换到包含相同未处理的备用队列消息。 这可以实现吗? 如果MSMQ不能轻松pipe理这个,是否有可能在存储级别上做些什么?