How to code hosting of the WF with WC 3.5 ReciveActivity in Windows Service (XP)?-Collection of common programming errors
You should be using the WorkflowServiceHost instead of the normal ServiceHost. The WorkflowServiceHost does all the usual WCF related stuff but also makes sure a workflow runtime is created and the required workflow routing environment is setup.
See this blog post for how to do so. This second post show a bit more about how to change the configuration.
BTW. In general you should be using the context bindings like the basicHttpContextBinding and wsHttpContextBinding as they pass the context information containing the workflow instanceId with the messages.