繁体   English   中英

WF4.5不编译并行的C#工作流程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM