我有一个公共消息队列,其中包含对每个人的完全权限,我尝试从匿名Web服务进行访问。
方法MessageQueue.Exists
- >始终返回false。如果队列是公开的并且每个人都有权限,为什么我找不到它?
我将代码更改为:
MessageQueue queue = new MessageQueue(name);
return queue.Peek(expireInterval);
但是这会抛出队列不存在或我没有访问权限的异常。
Web服务必须保持匿名,为什么不足以授予队列权限?
我甚至尝试完全控制ANONYMOUS帐户,nada。
有人请向我解释这个伏都教,提前谢谢:)
答案 0 :(得分:0)
在做了一些研究之后,我发现在这个网站上提出的类似问题是通过将队列路径从“。\ QueueName”更改为“FormatName:DIRECT = OS:。\ QueueName”来回答的。
这确实有帮助,虽然我找不到原因。 然后我找到了这篇文章: http://www.infosysblogs.com/microsoft/2007/02/msmq_sending_message_to_remote.html 这说明远程访问MSMQ需要使用FormatName语法。
当WS在集成安全性下运行时,我仍然不明白为什么会这样。