MSMQ HTTP Message Send Problems.

Recently I handled an issue where customer was unable to send MSMQ HTTP messages from one Win2k8 machine to another. The messages would remain stuck in the outgoing queue. No matter what we tried the problem would not go away. What we found on the network trace was very interesting:

We get an HTTP 500 but it gives a small hint as seen below - The Specified Module was not found.

Netmon Trace Output

14 2010-02-03 14:34:00.300000 10.10.10.1 10.10.10.2 HTTP HTTP/1.1 500 Internal Server Error (text/html)

Content-Length: 101
Content-Type: text/html
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Wed, 03 Feb 2010 22:33:59 GMT

<html><head><title>Error</title></head><body>The specified module could not be found.
</body></html>

Another clue to this problem is when you try to suft to: https://remoteservername/msmq we got an HTTP 502/504 error and not an http 404.

Now we started a Procmon trace on the MSMQ Server to see what is going on. We found something very interesting. The Process Monitor log showed that we are unable to find 32bit version of mqise.dll.

To work around this problem, copy a 32-bit version of the Mqise.dll file to the %WINDIR%\SysWOW64 directory on the computer that is running a 64-bit version of Windows.

A second option is to run IIS in 64Bit mode.

Kb Article 936497 talks more about this in more detail.