Partilhar via


MSMQ messages using HTTP just won't get delivered #5

Here's another reason for MSMQ messages to be undelivered over HTTP.

For this customer problem, the network traffic and IIS logs showed that the messages were being correctly POSTed to the web server. The next step should be for the server's MSMQ web application to accept the HTTP traffic and convert it into a native MSMQ message for the local queue manager. As the message never appeared in the queue, the troubleshooting involved looking in the formatted output from the MSMQLOG.BIN.

In this case it could be seen that the user account handling the HTTP traffic had insufficient permissions to contact the MSMQ web application:

[0]da0.2e4 08/15/2007-16:18:39.531 [mqise IsHttps] Info:https request
[0]da0.2e4 08/15/2007-16:18:39.531 [mqise CheckAccessAllowed] Info:the user for the currect request = IUSR_WEBSERVER
[0]da0.2e4 08/15/2007-16:18:39.531 [mqise TraceAuthInfo] Info:AUTH_USER = <NULL>, AUTH_TYPE = <NULL>
[0]da0.2e4 08/15/2007-16:18:39.531 [mqise CheckAccessAllowed] Info:APPL_PHYSICAL_PATH = c:\inetpub\wwwroot\msmq
[0]da0.2e4 08/15/2007-16:18:39.531 [mqise VerifyWritePermission] ERROR:Access was denied, desired access = 0x2, grant access = 0x0
[0]da0.2e4 08/15/2007-16:18:39.531 [mqise HttpExtensionProc] ERROR:user = IUSR_WEBSERVER denied access, bad_win32_error exception, error = 0x5

 {{"currect" - I'm glad these logs are internal-only...}}

The solution was to modify the Access Control List for the directory so that IUSR_WEBSERVER had appropriate access and then messages started to flow properly.

Comments

  • Anonymous
    October 25, 2007
    running into the same problem. Requests show up in IIS logs, but not in MSMQ queue. Already granted permission to IUSR, but still not working

  • Anonymous
    October 25, 2007
    This is #5 in a series - have you checked out the previous 4 to see if they have any useful troubleshooting steps?

  • Anonymous
    October 25, 2007
    yeah... i checked all of them... from my research, I think I'm SOL and I'll have to ask MS to decode my msmq log files. I can see the requests coming in IIS... just can't figure why they're not moving over to MSMQ.

  • Anonymous
    October 29, 2007
    I do understand your position - so much useful information is locked away inside the MSMQ log files. Could you elaborate more on the problem - how you are addressing the message, etc?

  • Anonymous
    October 29, 2007
    The comment has been removed

  • Anonymous
    October 30, 2007
    I'll start off with some general problems using transactional queues with a firewall/load balancer. I know you have tried different types of queues but you'll bump into these when you've fixed the current problem. Firstly the Vista machine needs to be running IIS+MSMQ/HTTP so that the Windows 2003 server can send back the transactional acknowledgments over HTTP. Messages won't leave the outgoing queue if the transaction can't commit. Secondly, and similarly, there will be problems in production getting the acknowledgements back through the load balancer: 899611 How Message Queuing can function over Network Load Balancing (NLB) http://support.microsoft.com/default.aspx?scid=kb;EN-US;899611 In test it will probably work but once you have multiple senders the returning acknowledgements start getting sent to the wrong machine. As to what your current problem is, that's not immediately obvious. Do you see any network traffic returned from the server to the client? Are you sending messages to the Default Web Site or an extra website you have configured? Is there a firewall in between for your testing? I assume the extra " in the middle of the address is a typo.