我正在尝试获取远程计算机上的可用队列列表。该机器是工作组模式下的Win2003R2,运行代码的客户机是使用相同工作组名称的Windows 8机器。运行以下代码时出现异常:
var messages = MessageQueue.GetPrivateQueuesByMachine("Win2003SRV");
错误信息是:
base {System.Runtime.InteropServices.ExternalException}: {"Access to Message Queuing system is denied."}
Message: "Access to Message Queuing system is denied."
MessageQueueErrorCode: AccessDenied
我很确定它与Windows 2003上的权限有关,但找不到多少。该代码适用于另一个Win Server 2008(但在工作组模式下),也适用于本地MSMQ。根据{{3}},工作组模式支持此功能,所以有什么问题?
解决:
我的问题结果是我的客户端计算机上没有安装MSMQ!链接上的帮助向我指出了正确的方向,所以我所要做的就是在客户机上安装MSMQ。如果你看看GetPrivateQueuesByMachine的实现,本机调用可以抛出一个DllNotFoundException,它就是那个转换成特定消息的异常,所以它应该给你一个错误的提示
答案 0 :(得分:3)