0

我有一个对每个人都具有完全权限的公共消息队列,我尝试从匿名 Web 服务访问它。

  1. 方法MessageQueue.Exists-> 一直返回 false。如果队列是公开的,每个人都有权限,为什么我找不到呢?

  2. 我将代码更改为如下所示:

    消息队列队列 = 新消息队列(名称);

    返回 queue.Peek(expireInterval);

但这会引发队列不存在或我无权访问它的异常。

Web 服务必须保持匿名,为什么授予队列权限还不够?

我什至尝试完全控制匿名帐户,nada。

有人请向我解释这个巫术,在此先感谢:)

4

1 回答 1

0

在做了一些研究之后,我发现在这个网站上提出了一个类似的问题,该问题的答案是将队列路径从“.\QueueName”更改为“FormatName:DIRECT=OS:.\QueueName”。

这确实有帮助,尽管我找不到原因。然后我找到了这篇文章: http: //www.infosysblogs.com/microsoft/2007/02/msmq_sending_message_to_remote.html ,它解释了远程访问 MSMQ 需要使用 FormatName 语法。

我仍然不明白为什么当 WS 在集成安全性下运行时这会起作用。

于 2010-09-06T13:02:00.810 回答