【问题标题】:Hosting WPF and dynamically editing a workflow service at runtime?托管 WPF 并在运行时动态编辑工作流服务?
【发布时间】:2011-10-16 18:43:37
【问题描述】:
给定一个工作流服务 (testService.xamlx),它有一个 ReceiveRequest 和一个 SendResponse(暂时没有其他内容),是否可以将此服务部署到 IIS 并仍然由用户编辑(使用重新托管 WPF 设计器),更改是否生效?
基本上我想抛出我的基本服务流,让用户在设计器中编辑工作流,点击保存,然后让下一次调用使用新编辑的流。我已经弄清楚如何重新托管设计器,但不太清楚如何在运行时加载/编辑/保存工作流服务。
任何帮助将不胜感激!
【问题讨论】:
标签:
wpf
workflow-foundation-4
【解决方案1】:
您可以这样做,但有一些重要的限制。首先,您需要使用新的工作流定义停止并重新启动 WorkflowServiceHost。其次,持久性存储中的所有现有工作流实例都将变为无效。简而言之,这只有在没有持久性的情况下很少且只有短时间运行的工作流才是实用的。
如果你走这条路,你可以覆盖 XAMLX 文件,因为它没有被编译而是按原样使用,然后重新启动 WorkflowServiceHost 以获取更改。或者,您可以将工作流保存到 XAML 文件或任何相关的流,然后使用 ActivityXamlServices 加载它。接下来,您可以使用此工作流定义来实例化 WorkflowServiceHost。