我的设置
ServerA在本地使用IIS应用程序池标识运行Web应用程序。
ServerB正在运行MSMQ,托管一个我们称之为MyQueue的私有队列
使用ServerB上的消息队列管理器,我已将MyQueue配置为向ServerA的域帐户(ServerA $)以及ANONYMOUS LOGON用户授予完全控制权限
我想发生的事情
我希望ServerA上的Web应用程序将消息发送到ServerB上的MyQueue
实际发生的事情
消息从未出现在ServerB上,我也没有收到任何错误消息。 我已经打开了负源日志记录,并且可以看到我在死信队列中收到“访问被拒绝”的错误。
如果我授予Everyone完全控制权限,则消息会显示,但我不想这样做。
我为什么认为这会起作用
关于IIS应用程序池标识的这篇文章说道:
在域环境中使用Network Service帐户有很大的好处。 作为Network Service运行的工作进程将以机器帐户的身份访问网络。 当计算机加入域时,将生成机器帐户。 它们看起来像这样:
domainname\machinename$,
例如:
mydomain\machine1$ 这个好处是,可以对像文件共享或SQL Server数据库这样的网络资源进行ACL控制,以允许此机器帐户访问。
应用程序池标识怎么样?
好消息是应用程序池标识也使用机器帐户来访问网络资源。 不需要进行更改。
基于那些信息,我会认为在MyQueue上授予MY_DOMAIN \ SERVERA $权限,然后事情应该能够正常工作。 但是它们没有。
有什么想法我做错了什么吗?