On one of my current projects we are trying to use WCF with BizTalk 2006. In order to do this I was trying to implement the WCF adapter for BizTalk Server 2006 community project. The project comes with a nice sample application that demonstrates how everything works. However, when I tried to start the receive port I would get an error message saying:
The Messaging Engine failed to add a receive location "News Receiver" with URL "wcf://http://localhost:13000/eventsource" to the adapter "WCF". Reason: "The ChannelDispatcher at 'http://localhost:13000/eventsource' with contract(s) '"IndigoOneWayReceiver"' is unable to open its IChannelListener."
I tried to get this working a few different ways but nothing seemed to matter. The weird thing was that I could write a simple WCF console app that would listen on http://localhost:13000/eventsource and it would work. But whenever I would start the receive location I would get that error. I posted my question in the WCF Forums and also on the codeplex project but was unable to resolve it.
Then I ran into this same issue again with another sample app that I downloaded, but this time it was because IIS was running on the same port (and I was using Windows XP). However, in the process of figuring that out I came across this post by Martin Parry. While the post didn't resolve my issue (it is for Vista only), it did point me in the right direction. After some more googling I came across this post by dominick baier which explains the issue in Windows Server 2003 terms (and he even provides a tool to help you with the HttpCfg syntax).
So if you're working with WCF and you want to listen on a port and you're not running as an administrator, then you will need to configure the server with the HttpCfg tool. The error message about the IChannelListener isn't very helpful, but maybe that will change before we get to RTM. In the meantime, HttpCfg is your friend.