Я использую Windows Workflow как часть библиотеки классов в приложении ASP.NET. Я прочитал все предложения о настройке WWF в ASP.NET и использовании ManualWorkflowSchedulerservice, однако я не уверен, имеет ли это смысл для моего приложения.
Все мои рабочие процессы последовательны, без сохранения; они огонь и забудь. Клиент делает запрос и возвращается позже, чтобы увидеть результаты (или ждет в приложении). До сих пор я использовал класс веб-службы AJAX для запуска работы.
function DoWebserviceJob()
{
MywebService.DoJob(onComplete, onFailed);
}
[WebMethod]
public DoJob()
{
//code from library
}
Если бы клиент все еще был рядом, он получил бы уведомление, если бы не было в порядке. Теперь я использую WWF вместо кодирования прямо из библиотеки. Я знаю, что это работает (так как я это сделал), но мне интересно, есть ли какие-то побочные эффекты, о которых я не знаю, или другие проблемы. Мой новый код выглядит так:
[WebMethod]
public DoJob()
{
WorkflowRuntime runtime = Application["RUNTIME"] as WorkflowRuntime;
MyWorkflowManager.DoJob(runtime);
}
Моя библиотека классов:
public void DoJob(WorkflowRuntime runtime)
{
WorkflowInstance instance = runtime.CreateWorkflow(typeof(MyWorkflow));
instance.Start();
}
Это немного упрощено, но общий процесс здесь. Это работает отлично прямо сейчас, есть какие-то вопросы, которые я должен быть обеспокоен? Если это потоки (что, кажется, является наиболее цитируемой проблемой), это не то же самое, что запуск веб-службы в другом потоке?