从ASP.Net Web服务访问MSMQ时出现权限错误

从ASP.Net Web服务访问MSMQ时出现权限错误,asp.net,iis,permissions,msmq,web-services,Asp.net,Iis,Permissions,Msmq,Web Services,我编写了一个从消息队列读取的web服务。 这在卡西尼号下运作良好 现在我已经在IIS下部署了该服务,当该服务尝试访问队列时,我收到一条错误消息: 队列不存在,或者您没有足够的权限执行该操作。 我已将IIS虚拟目录上的匿名访问用户设置为我自己的域帐户,该帐户是本地计算机上administrators组的成员。我已授予该用户对队列、网络服务和ASPNET的完全权限 我仍然收到相同的错误消息 我还尝试禁用对虚拟目录的匿名访问,并使用自己的登录详细信息连接到该服务,但没有成功 对此问题的任何帮助都将不胜

我编写了一个从消息队列读取的web服务。 这在卡西尼号下运作良好

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

队列不存在,或者您没有足够的权限执行该操作。

我已将IIS虚拟目录上的匿名访问用户设置为我自己的域帐户,该帐户是本地计算机上administrators组的成员。我已授予该用户对队列、网络服务和ASPNET的完全权限

我仍然收到相同的错误消息

我还尝试禁用对虚拟目录的匿名访问,并使用自己的登录详细信息连接到该服务,但没有成功

对此问题的任何帮助都将不胜感激



我还尝试了以下各种组合:


testUsr对队列具有完全权限。我在C:\

上的MSMQ存储文件夹中为用户和ASPNET添加了权限。我对问题的理解是,试图执行代码的进程在IIS下以与Cassini下不同的帐户运行

问题是,无论我模拟的是哪个用户,我都会收到相同的错误消息,即使该用户是本地和域管理员组的成员,并且该用户对队列具有完全权限。i、 e.几乎不可能为用户分配更多的权限

事实证明,使用队列的FormatName而不是路径名(myMachine\queueName)解决了这个问题

FormatName:DIRECT=OS:myMachine\myQueue

我不确定这到底是为什么。阅读表明,当使用路径名时,有必要进行广告查找,尽管我认为我一直在测试的用户应该有权这样做,但可能缺少一些东西


然而,眼前的问题已经解决了,这对我来说已经足够好了。

我还尝试了:和的各种组合,testUsr对队列拥有完全权限。我已经为用户和ASPNET添加了对C:\MSMQ存储文件夹的权限,谢谢。MSDN文档对此含糊不清。您需要在开始时包含“Formatname:”部分!