views:

166

answers:

1

I've just moved my development to a Win 7 64-bit machine and am having some wcf endpoint issues. As far as I can see the net.msmq endpoints that point to localhost do not work. The messages do get sent but appear in an outgoing msmq queue that constantly says 'Waiting to Connect'. As far as I was aware msmq messages sent to a private queue on a local machine were just put into the target queue automatically and not into an outgoing queue? Could it be that it thinks that 127.0.0.1 is somewhere else?

When I change the host address in the endpoint to the name of my machine or my ip address the application performs correctly and no outgoing queue is apparent and the messages get sent/arrive correctly. Could this be an ipv6 issue? Using 'localhost' in the endpoints works fine on my previous machine which was XP sp3.

+1  A: 

I've had this issue with WCF and net.tcp/http on Vista and Win7- it's probably an IPv6 issue. If your listener is bound to 127.0.0.1, it won't work since localhost will first resolve to ::1. Make sure your listener is also bound there. In Vista, you could remove ::1 from the hosts file, but in Win7, that's no longer an option. Grr.

nitzmahone
Thanks. Yeah that makes sense however my listener also uses localhost so they should both resolve to ::1 and see each other. It is interesting that the outgoing msmq queue which gets created is called 'DIRECT=TCP:127:0.0.1\private$\WorkItemService' Quite why it uses 127.0.0.1 I'm not sure as I've never specified this
Martin MacPherson