c# – 无法以编程方式查看远程(私有)msmq:拒绝访问消息队列系统
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 无法以编程方式查看远程(私有)msmq:拒绝访问消息队列系统,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1053字,纯文字阅读大概需要2分钟。
内容图文
我有一个非常简单的控制台应用程序,无法查看远程专用队列中的消息.
var queues = MessageQueue.GetPrivateQueuesByMachine(machineName);
var queue = queues.Where(x=>x.FormatName == queueName).Single();
Message message = queue.Peek();
Peek调用失败,MessageQueueException为“拒绝访问消息队列系统”.
使用相同的客户端计算机和用户,我可以使用队列资源管理器和消息队列管理单元查看队列.
尝试使用本地队列我只能通过取消队列中的Peek权限来重现错误,但也会在其他工具中停止它.
我已经看到很多信息指出了here概述的问题.
但是,似乎任何这些问题都是问题,我也无法使用其他工具.
编辑
我已经能够使用MSMQQueueInfo/MSMQQueue COM对象使其工作,而无需更改任何凭据.
如果我可以使用.NET库使其工作,那将是很好的,但至少我有一个解决方法.
解决方法:
我的问题是,当使用GetPrivateQueuesByMachine获取队列时,它使用SendAndReceive的访问模式,这要求获得更多权限.我不得不使用MessageQueue构造函数来指定AccessMode. (在这种情况下是Peek.)
最后,我能够使用类似于以下的代码来实现此功能:
var queue = new MessageQueue(@"FormatName:DIRECT=OS:machineName\private$\queueName", QueueAccessMode.Peek);
Message message = queue.Peek();
内容总结
以上是互联网集市为您收集整理的c# – 无法以编程方式查看远程(私有)msmq:拒绝访问消息队列系统全部内容,希望文章能够帮你解决c# – 无法以编程方式查看远程(私有)msmq:拒绝访问消息队列系统所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。