Windows Workflow Foundation 4.0 и постоянство
Я использую Visual Studio 2010 Beta 2, чтобы научиться использовать Workflow Foundation (WF) версии 4.0 до следующего выпуска Visual Studio 2010. Я заметил одну вещь: если я сохраню Workflow в хранилище постоянных данных базы данных SQL, а затем загрузите его обратно в приложение и завершите рабочий процесс, запись будет удалена из постоянного хранилища после завершения последнего действия рабочего процесса. Мне нужно выяснить, предназначена ли эта функциональность для предотвращения увеличения базы данных, или я делаю что-то не так.
1 ответ
Это поведение удаления настраивается. Например, если вы используете WorkflowServiceHost и используете код для настройки своего хоста службы, вы можете установить для SqlWorkflowInstanceStoreBehavior.InstanceCompletionAction значение InstanceCompletionAction.DeleteNothing, как в следующем примере:
WorkflowServiceHost host = new WorkflowServiceHost(workflow, baseAddress);
SqlWorkflowInstanceStoreBehavior persistenceBehavior = new SqlWorkflowInstanceStoreBehavior(connString);
persistenceBehavior.InstanceCompletionAction = InstanceCompletionAction.DeleteNothing;
host.Description.Behaviors.Add(persistenceBehavior);
Дополнительную информацию о функциях хранилища экземпляров рабочего процесса SQL и о том, как его можно настроить, можно найти в этой статье MSDN.