所以我在 2012 年创建了一个合同优先工作流。我有一个 xamlx 文件,其中每个操作都有一个并行路径。在 IIS (Express) 下一切正常。
但是,我需要在 EXE 而不是 IIS 中托管这些 WCF 服务。我一直在尝试使用 WorkflowServiceHost,但无论我如何配置它,我都会收到与“必须设置活动”等相关的错误。等等
不幸的是,在网络上进行的搜索并没有产生有效的 WF4.5 解决方案。任何帮助表示赞赏。
所以我在 2012 年创建了一个合同优先工作流。我有一个 xamlx 文件,其中每个操作都有一个并行路径。在 IIS (Express) 下一切正常。
但是,我需要在 EXE 而不是 IIS 中托管这些 WCF 服务。我一直在尝试使用 WorkflowServiceHost,但无论我如何配置它,我都会收到与“必须设置活动”等相关的错误。等等
不幸的是,在网络上进行的搜索并没有产生有效的 WF4.5 解决方案。任何帮助表示赞赏。
IIS 在幕后使用从 WCF ServiceHost 派生的 WorkflowServiceHost。只需使用工作流定义新建一个并打开它以开始侦听传入的请求。
简单的控制台应用程序代码。
var workflow = new MyWorkflow();
var serviceHost = new WorkflowServiceHost(workflow);
serviceHost.Open();
Console.WriteLine("WorkflowServiceHost is listening...");
Console.ReadLine();serviceHost.Close();
相关的 app.config。
<system.serviceModel>
<services>
<service name="MyWorkflow">
<endpoint address="http://localhost:8080/MyWorkflow" binding="basicHttpBinding" contract="IMyWorkflow"/>
</service>
</services>
</system.serviceModel>