【问题标题】:Permissions error accessing MSMQ from ASP .Net Web Service从 ASP .Net Web 服务访问 MSMQ 的权限错误
【发布时间】:2010-10-18 13:52:15
【问题描述】:

我编写了一个从消息队列中读取数据的网络服务。 这在 Cassini 下运行良好。

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

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

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

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

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

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


我也尝试过以下各种组合:

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

上的 MSMQ 存储文件夹中添加了用户和 ASPNET 的权限

【问题讨论】:

  • 我也尝试了各种组合: 与 testUsr队列的完全权限。我在 C:\ 上的 MSMQ 存储文件夹中添加了用户和 ASPNET 的权限

标签: asp.net iis permissions msmq web-services


【解决方案1】:

我对这个问题的理解是,试图执行代码的进程在 IIS 下以不同的帐户运行,而不是在 Cassini 下运行。

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

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

FormatName:DIRECT=OS:myMachine\myQueue

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

但是眼前的问题已经解决了,这对我来说已经足够了。

【讨论】:

  • 谢谢。 MSDN 文档对此含糊不清。您需要在开头包含“格式名称:”部分!
猜你喜欢
  • 2010-12-14
  • 2014-11-14
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
相关资源
最近更新 更多