I'm not going to get into detail, just take my word for it:
MSMQ over WCF does not work in WF.
If you want to use Message Queuing in a Windows Workflow, you're going to
have to do it the old manual way, as in not inside Communication Foundation
stuff.
If you want to use Message Queuing over Communication Foundation (which I
recommend), then WorkFlow is not an option for you.
It's annoying, because it seems like a natural fit... Communication
Foundation and WorkFlow Foundation are part of the same lovely .NET 3.5 family,
and MSMQ is an old reliable technology that continues to be a really good idea,
but they can't all play nicely together.
The reason, if you care, is basically because on a fundamental level, the
way Windows WorkFlow works, it needs the WCF binding to provide a context.
NetMsmqBinding does not, which makes sense on its own as the point of MSMQ is
generally for reliable one-way messaging. So, at least for now, it's a
no-go.
Your available alternative is to write your own WCF binding that somehow provides a context, if you really
want to do so...
Dibs out.
Or you could create a code activity instead of using ReceiveActivity and
roll your MSMQ manually.
...Also not my first choice.
In my case, I just ended up not using WorkFlow at all.