[英]WF4.5 not compiling side-by-side c# workflows
我有一个IIS托管的xamlx工作流,它带有要在并行版本控制中运行的c#表达式。
我确实喜欢这篇文章: 工作流服务的并行版本控制
工作流的新实例可以按预期工作,但是当我调用工作流的早期版本的实例时,它将引发一个错误,告诉我它尚未编译。
错误:
无法找到编译位置“ auxData”的ICompiledExpressionRoot。 确保包含该表达式的活动的定义已被编译。
顺便说一句,我有一个自定义工厂来编译工作流程。
<serviceActivations>
<add service="Service1.xamlx" relativeAddress="~/Service1.xamlx" factory="MyServiceHostFactory" />
</serviceActivations>
在分析了.Net的源代码之后,我意识到我在自定义工作流工厂中重写的CreateWorkflowServiceHost方法在其返回对象中添加了所有受支持的版本。
我要做的就是迭代这个集合并编译它们。
最终源代码:
protected override WorkflowServiceHost CreateWorkflowServiceHost(WorkflowService service, Uri[] baseAddresses)
{
var host = base.CreateWorkflowServiceHost(service, baseAddresses);
// add your customizations here…
CompileExpressions(service.Body);
foreach (var supportedVersion in host.SupportedVersions)
{
CompileExpressions(supportedVersion.Body);
}
return host;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.