Я запускаю постоянный рабочий процесс в приложении MVC 3, который работает хорошо, но когда рабочий процесс завершается, генерируется исключение WorkflowApplicationCompletedException.Рабочий процесс успешно завершен, последние выполненные действия и экземпляр удалены из базы данных.
Мне пока не повезло в поиске ответа, поэтому любые идеи, которые вызывают исключение, будут оценены.Мой текущий обходной путь - поймать исключение и выполнить свою работу для события OnCompleted.
Я просто создаю приложение WorkflowApplication, загружаю его и возобновляю закладку.
Любые советы или предложения приветствуются,Спасибо
application.Load(new Guid(basket.StandardFields.Settings));
application.ResumeBookmark(application.GetBookmarks().First().BookmarkName, WorkflowInputs);
application.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e)
{
if (e.Bookmarks != null && e.Bookmarks.Count > 0)
{
_viewName = e.Bookmarks[0].BookmarkName;
}
syncContext.OperationCompleted();
return PersistableIdleAction.Unload;
};
application.Completed = delegate (WorkflowApplicationCompletedEventArgs e)
{
CompleteWorkflow(syncContext);
};
application.SynchronizationContext.OperationStarted();
try
{
application.Run();
}
catch(WorkflowApplicationCompletedException)
{
CompleteWorkflow(syncContext);
}
Редактировать
Кажется, что application.ResumeBookmark (bookmark, WorkflowInputs) запускает рабочий процесс и завершает действия, затем, когда я вызываю команду run, онажалуется, что оно уже завершено.Но если я не вызываю run, когда вызывается рабочий процесс возобновления, браузер никогда не получает никакой информации, и я думаю, что он бесконечно ждет, потому что даже обновление не может вывести его из состояния ожидания.