从ASP .Net Web服务访问MSMQ的权限错误

Rob*_*obD 3 asp.net iis permissions web-services msmq

我编写了一个从消息队列中读取Web服务.这在Cassini下工作正常.

现在我已经在IIS下部署了服务,当服务尝试访问队列时,我收到一条错误消息:

队列不存在或您没有足够的权限来执行操作.

我已将IIS虚拟目录上的匿名访问用户设置为我自己的域帐户,该帐户是本地计算机上管理员组的成员.我已授予此相同用户对队列的完全权限,以及NETWORK SERVICE和ASPNET.

我仍然得到相同的错误消息.

我还尝试禁用虚拟目录上的匿名访问并使用我自己的登录详细信息连接到服务 - 无济于事.

任何有关此问题的帮助将不胜感激!


我也尝试了各种组合:

并且testUsr对队列具有完全权限.我在C:\上的MSMQ商店文件夹中添加了用户和ASPNET的权限

Rob*_*obD 5

我对这个问题的理解是,尝试执行代码的进程在IIS下运行的是一个不同于Cassini的帐户.

问题是,无论我冒充哪个用户 - 我总是得到相同的错误消息 - 即使用户是本地和域管理员组的成员,并且该用户对队列具有完全权限.即几乎不可能为用户分配更多权限.

事实证明,使用FormatName作为队列,而不是路径名(myMachine\queueName)已经解决了问题...

FORMATNAME:DIRECT = OS:MYMACHINE\myQueue中

我不确定为什么会这样.阅读已经表明,当使用路径名时,有必要进行AD查找,虽然我认为我一直在测试的用户应该有权这样做,但也许有些东西丢失了.

然而,直接的问题已经解决,这对我来说已经足够了.