我正在使用“计算机管理”管理单元检查MSMQ状态。特别是传出队列。我想知道是否有命令行实用程序可以让我这样做。IE。运行该实用程序将显示所有传出队列及其状态。谢谢。 最佳答案 没有。您需要编写自己的应用程序或脚本(或找到其他人编写的)。产品中没有任何东西可以为您完成。 关于windows-计算机管理管理单元中是否有替代MSMQ管理控制台的命令行?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que
我正在尝试从mqoa.tlb或mqoa.dll的Delphi7>Project>ImportTypeLibrary创建单元,在WinXP和Win2003上,甚至在Win7x64上(都是mqoa30.tlb和mqoa.tlb(或*.dll),代表MSMQ4.0)-每次它都失败并出现错误“找不到元素”。根据MSMQ版本,在Windows2003和WindowsXP上安装了“MSMQ3.0”,但在我的旧项目中,我从mqoa20.tlb("C:\WINDOWS\system32\mqoa20.tlb”)。我想切换到MSMQ3.0接口(interface),但我不能。有什么建议吗?顺便说一下,曾
我有一个.NET项目,它有2个通过MSMQ进行通信的组件。我正在使用Wix构建我的安装程序,因为Microsoft莫名其妙地停止了对VisualStudio2012中安装程序的支持。我对在Wix安装程序中创建MSMQ实例的过程非常满意,而且我对以下过程非常满意检测计算机上是否安装了MSMQ(通过尝试加载Mqrt.dll)。有谁知道如何使用Wix安装MSMQWindows系统组件本身?有没有办法让Wix指示Windows安装系统组件? 最佳答案 花了很长时间,但终于找到了优雅的方式来做到这一点。1)在VisualStudio中创建一个
有人可以给我一些工作示例,说明如何从C++API创建、添加消息、读取和销毁私有(private)消息队列吗?我尝试了MSDN的代码片段,但无法使它们正常工作。谢谢 最佳答案 实际上这是我感兴趣的代码:#include"windows.h"#include"mq.h"#include"tchar.h"HRESULTCreateMSMQQueue(LPWSTRwszPathName,PSECURITY_DESCRIPTORpSecurityDescriptor,LPWSTRwszOutFormatName,DWORD*pdwOutFor
当我使用10个队列而不是1个队列时,为什么MSMQ的性能下降(~三分之一)?简而言之,当我在多线程应用程序中使用超过1个队列(从不同线程中的每个队列接收)时,MSMQ性能会大幅下降。这就像.NET中的MSMQ类有一个共享资源,随着队列数量的增加而缩小。顺便说一句,我在VisualStudio2010中使用Windows7进行这些测试。注意:我有1个队列用于在2个应用程序之间进行通信。我只需要使用可恢复模式。它工作正常,直到遇到100-150条消息/秒的限制。然后我想我可以通过将队列数量增加到10并并行处理它们来提高处理能力。但是当我收到时,时间增加了近3倍!:O我使用C#编写了我的应用
如何使用C#和.NET3.5获取MSMQ中所有传出队列的列表?我找到了thisarticleaboutit但正如您在下面看到的,我没有MicrosoftMessageQueue3.0ObjectLibrary...的COM条目那么我怎样才能得到当前的出局队列列表呢?我认为一定有办法,因为我可以在ComputerManagement中看到它们...我能做什么? 最佳答案 我认为有两个不错的起点:http://msdn.microsoft.com/en-us/library/ms703173%28v=vs.85%29.aspxhttp:
我有一个WCF服务。它绑定(bind)到MSMQ,但这不是这里的问题。我可以序列化一个对象,该对象具有基类和在基类中实现的接口(interface),具体类派生自基类-这工作正常。然而,当我在基类中有一个枚举并设置该值时,在它被反序列化/从MSMQ读取之后,该值仍设置为默认值(即不是在代码中手动设置的值)有什么想法吗?我什至将枚举标记为DataContract,并将每个Enum成员标记为EnumMember属性。如何序列化枚举? 最佳答案 试试这个。[Serializable]publicenumEnumToSerialize{[X
MSMQ排队消息能否在服务/服务器重启后继续存在?我的意思是,如果队列有消息并且服务器要经历硬重启,那么消息在重启后是否仍然在队列中可用? 最佳答案 为此,您必须将消息标记为可恢复。默认情况下,MSMQ消息仅保存在内存中,但可恢复消息会备份到磁盘以启用可靠的MSMQ消息传递。usingSystem.Messaging;MessagerecoverableMessage=newMessage();recoverableMessage.Body="SampleRecoverableMessage";recoverableMessage.
我正在研究Microsoft消息队列以进行进程间跨网络消息传递。但是当我收到一条消息时,我先验不知道我得到的是什么类型的对象,所以代码queue.Formatter=newXmlMessageFormatter(newType[]{typeof(Wibble)});无法应用之前我收到消息是因为我不知道它是否是Wibble。那么如何接收不同的消息类型呢? 最佳答案 您已经在为XmlMessageFormatter使用构造函数重载接受类型的数组。因此,只需将您希望接收的所有类型添加到该数组中,而不是只添加一种类型。queue.Forma
我知道当我尝试创建新的MessageQueue时,如果未启用消息队列,系统会抛出InvalidOperationException。但是如何以编程方式知道机器上是否启用了消息队列?我在两个不同的代码库中使用C#2.0和C#4.0。 最佳答案 您可以为此使用System.ServiceProcess,但首先您需要添加对项目的引用Service.ServiceProcess,然后您可以检索所有服务并像这样获得他们的状态:Listservices=ServiceController.GetServices().ToList();Servi