Постоянство рабочего процесса - WebServiceInputActivity - PullRequest
1 голос
/ 26 мая 2009

альтернативный текст http://home.elka.pw.edu.pl/~pkolodzi/Capture.PNG

Я создал интерфейс IAdder двумя способами: PassA и PassB . Мой рабочий процесс начинается с webServiceInputActivity1 , который активируется удаленным вызовом PassA . Другим элементом в моем рабочем процессе является еще один элемент webServiceInputActivity2 . На этот раз свойство IsActivating имеет значение false. Я ожидаю, что мой рабочий процесс будет сохранен после завершения первого действия (которое возвращает void). Рабочий процесс должен быть возобновлен путем вызова веб-метода PassB.

После публикации рабочего процесса в качестве веб-службы и вызова PassA я получаю следующее:

    System.InvalidOperationException: Workflow with id "b0c5f9dd-57f3-427f-b172-17d4663f7eaf" not found in state persistence store.
   at System.Workflow.Runtime.Hosting.PersistenceDBAccessor.RetrieveInstanceState(Guid instanceStateId, Guid ownerId, DateTime timeout)
   at System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService.LoadWorkflowInstanceState(Guid id)
   at System.Workflow.Runtime.WorkflowRuntime.InitializeExecutor(Guid instanceId, CreationContext context, WorkflowExecutor executor, WorkflowInstance workflowInstance)
   at System.Workflow.Runtime.WorkflowRuntime.Load(Guid key, CreationContext context, WorkflowInstance workflowInstance)
   at System.Workflow.Runtime.WorkflowRuntime.GetWorkflow(Guid instanceId)
   at System.Workflow.Activities.WorkflowWebService.Invoke(Type interfaceType, String methodName, Boolean isActivation, Object[] parameters)
   at PersistanceWebServiceWorkflow.Workflow1_WebService.PassA(Int32 a) in C:\Users\djpiter\AppData\Local\Temp\2dnwfnsn.cs:line 39

У вас есть идеи, что я делаю не так?

ps :( База данных настроена правильно. Я протестировал ее на рабочем процессе, размещенном в консольном приложении, и задержал активность. Я также добавил необходимую строку в файл web.config.)

С уважением PK

1 Ответ

0 голосов
/ 26 мая 2009

Если одно из ваших действий вызовет исключение, информация о состоянии рабочего процесса будет удалена из базы данных. Запустите ваш отладчик рабочего процесса с параметром «перерыв, когда выбрасывается исключение», настроенным в «Отладка» - исключения - общеязыковые исключения времени выполнения

...