WF4.5未编译并排侧的C#的工作流程(WF4.5 not compiling side-by-si

2019-07-21 15:35发布

我有一个IIS托管与我试图以左右端版本运行C#表达式xamlx工作流程。

:我做这篇文章酷似由工作流服务并行版本边

如预期的那样工作流程作品的新情况,但是当我打电话的工作流程的一个早期版本的实例,它提出了一个错误,告诉我,它不是编译。

错误:

无法找到已编译的位置“AUXDATA”的ICompiledExpressionRoot。 确保含有这种表达活动的定义已经被编译。

顺便说一句,我有一个自定义的工厂,编译工作流程。

<serviceActivations>        
    <add service="Service1.xamlx" relativeAddress="~/Service1.xamlx" factory="MyServiceHostFactory" />
</serviceActivations>

Answer 1:

分析从.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;
    }        


文章来源: WF4.5 not compiling side-by-side c# workflows