I have a state machine workflow with 3 states. I have published this as a webservice. Each state in the workflow has exactly one webservice method. The webservice method in the first state creates the workflow and passes to the second state. The workflow gets persisted in that state. Then, the webservice client calls the second webservice method. Here the first webmethod works fine, by creating the workflow instance. However while calling the second webmethod which invokes the WebserviceInput activity in the workflow, the following error occurs:
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Workflow.Runtime.QueueException: Queue 'Message Properties\nInterface Type:WF.Common.InterfaceContracts.IWorkflow\nMethod Name:UpdateData\nCorrelationValues:\n' is not enabled.\n at System.Workflow.Runtime.WorkflowQueuingService.EnqueueEvent(IComparable queueName, Object item)\n at System.Workflow.Runtime.WorkflowExecutor.EnqueueItem(IComparable queueName, Object item, IPendingWork pendingWork, Object workItem)\n at System.Workflow.Runtime.WorkflowInstance.EnqueueItem(IComparable queueName, Object item, IPendingWork pendingWork, Object workItem)\n at System.Workflow.Activities.WorkflowWebService.SafeEnqueueItem(WorkflowInstance instance, EventQueueName key, MethodMessage message)\n at System.Workflow.Activities.WorkflowWebService.Invoke(Type interfaceType, String methodName, Boolean isActivation, Object[] parameters)\n at WF.Workflows.WorkflowManager_WebService.UpdateData(String IdNo, String Name, Int32 CustomerId, String Comments) in C:\\Documents and Settings\\QBase\\Local Settings\\Temp\\pwvvhuio.cs:line 63\n --- End of inner exception stack trace ---
As far as I know, the correlation values are required and can be supplied only in the CallExternalMethod activity and not in the WebserviceInput activity. I have already managed to get the __WorkflowInstanceId__ in the HttpContext though. Even then this doesn't work.
Please anyone throw some light on how to solve this issue.