My setup
ServerA is running a web app on IIS 7 using a local IIS Application Pool identity.
ServerB is running MSMQ, hosting a private queue we'll call MyQueue
Using the Message Queueing snap-in on ServerB, I have configured MyQueue to grant Full Control to the ServerA's domain account (ServerA$) as well as the ANONYMOUS LOGON user
What I Want To Happen
I want the web app on ServerA to send a message to MyQueue on ServerB
What is Actually Happening
The message never shows up on ServerB and I get no error message. I have turned on negative source journaling and can see that I'm getting an "Access Denied" error in the dead letter queue.
If I grant Full Control to Everyone, then the message shows up, but I don't want to do this.
Why I Thought This Would Work
This article about IIS Application Pool Identities says that
Using the Network Service account in a domain environment has a great benefit. Worker process running as Network Service access the network as the machine account. Machine accounts are generated when a machine is joined to a domain. They look like this:
domainname\machinename$,
For example:
mydomain\machine1$ The nice thing about this is that network resources like file shares or SQL Server databases can be ACLed to allow this machine account access.
WHAT ABOUT APPLICATION POOL IDENTITIES?
The good news is that application pool identities also use the machine account to access network resources. No changes are required.
Based upon that information, I would assume that granting MY_DOMAIN\SERVERA$ permissions on MyQueue, then things should work. But they aren't.
Any idea what I'm doing wrong?