我在 ASP.NET 应用程序中使用 Windows 工作流作为类库的一部分。我已经阅读了有关在 ASP.NET 中设置 WWF 和使用 ManualWorkflowSchedulerservice 的所有建议,但是,我不确定这对我的应用程序是否有意义。
我的工作流程都是顺序的,没有持久性;他们很火,然后忘记了。客户端发出请求并稍后返回查看结果(或在应用程序上等待)。到目前为止,我一直在使用 AJAX Web 服务类来完成这项工作。
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();
}
这有点简化,但整个过程都在这里。现在效果很好,有什么我应该关注的问题吗?如果它是线程(这似乎是被引用最多的问题),这与在不同线程上触发的 web 服务不同吗?