httpmsmqnetmsmqbindingmsmqbinding

How To Get MSMQ over HTTP to work NOT on the 'Default Web Site'


It's in the title really....

I've got MSMQ receiving messages via HTTP on the DEFAULT web site. which is just assigned an IP Address.

I need to be able to push messages into the queue with a specific url (that won't be blocked by proxy etc. in production).

Problem is, MSMQ only installs to 'default web site'. And my feeble attempts to install it else where have failed.

  1. Added Bindings to net.msmq and msmsq.formatname to the 'non-default web site', I used 'binding information' as 'localhost' since that works on the 'default web site'.
  2. Created a web application on the non-default website; points to the same folder (inetpub\wwwrot\msmq). [I guess this is where it's not working, how's that supposed to 'magically' work??
  3. I thin added the net.msmq and msmsq.formatname protocols to a 'web application' I called MSMQ on the 'non-default' web site.

The above steps are basically the same, and I've done this too, as runnig the variouse scripts found here: http://channel9.msdn.com/shows/Endpoint/endpointtv-Screencast-Configuring-WAS-for-TCP-Endpoints/ and http://geekswithblogs.net/sathya/archive/2011/08/17/the-protocol-net.msmq-is-not-supported.aspx

All with no joy.

I just need to use a specific domain to receive my msmq http messages, any help appreciated.

PS, in production it will also have SSL cert on the domain. (on win server 2008 r2)


Solution

  • I gave up in the end, achieved my goal by

    1. Uninstall msmq with http
    2. Stop Default and 'target' website (I actually didn't do this but should have!)
    3. Go into advanced settings in IIS and change the Site Id of Default website to '99'
    4. Go into advanced setting in IIS and change the Site Id of 'target' website to '1'
    5. Restart IIS/Server up to you.
    6. Check that websites still work!
    7. Add MSMQ with http feature back.

    Done, I have MSMQ installed where I wanted.

    NOTE: I had to manually add the bindings for net.msmq and msmsq.formatname to the 'target' website. The installer didn't do that this time (nor did the uninstall remove them from 'default website').