我有一个IIS托管与我试图以左右端版本运行C#表达式xamlx工作流程。
:我做这篇文章酷似由工作流服务并行版本边
如预期的那样工作流程作品的新情况,但是当我打电话的工作流程的一个早期版本的实例,它提出了一个错误,告诉我,它不是编译。
错误:
无法找到已编译的位置“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;
}