工作流版本控制问题

时间:2009-07-23 08:17:26

标签: assemblies workflow-foundation

在我们的项目中,我们使用WF来运行工作流程。 .net版本3.5。托管在IIS应用程序池中。显然,我们遇到了一些版本问题:

我们使用程序集的第1版启动工作流程。在我们到达持久性点之后,我们升级到版本2,我们需要能够让旧实例继续使用旧版本的程序集运行。

主工作流引用了几个程序集。我们使用程序集绑定,因为我们无法将程序集安装到GAC中。但是,我们遇到了一个非常奇怪的问题:

使用我们在web.config中的配置,我们设置

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Post.Appl.Corp.Sdds.Core" culture="neutral" publicKeyToken="58aaab7e0ddb1742" />
    <codeBase version="1.2.11.0" href="v11\Post.Appl.Corp.Sdds.Core.dll"/>
    <codeBase version="1.2.12.0" href="v12\Post.Appl.Corp.Sdds.Core.dll"/>
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Post.Appl.Corp.Sdds.Workflows" culture="neutral" publicKeyToken="58aaab7e0ddb1742" />
    <codeBase version="1.2.11.0" href="v11\Post.Appl.Corp.Sdds.Workflows.dll"/>
    <codeBase version="1.2.12.0" href="v12\Post.Appl.Corp.Sdds.Workflows.dll"/>
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Post.Appl.Corp.Sdds.Data" culture="neutral" publicKeyToken="58aaab7e0ddb1742" />
    <codeBase version="1.2.11.0" href="v11\Post.Appl.Corp.Sdds.Data.dll"/>
    <codeBase version="1.2.12.0" href="v12\Post.Appl.Corp.Sdds.Data.dll"/>
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Post.Appl.Corp.Sdds.Contracts" culture="neutral" publicKeyToken="58aaab7e0ddb1742" />
    <codeBase version="1.2.11.0" href="v11\Post.Appl.Corp.Sdds.Contracts.dll"/>
    <codeBase version="1.2.12.0" href="v12\Post.Appl.Corp.Sdds.Contracts.dll"/>
  </dependentAssembly>
</assemblyBinding>

显然,工作流运行时正确地注意到它需要程序集(如果我们没有进行此配置,它会立即告诉我们,它找不到合适的版本)。

但是,一旦实例被反序列化,它就会抛出一个异常,说它无法将“System.Runtime.Serialization.TypeLoadExceptionHolder”转换为我们工作流中序列化属性的类型。

奇怪的是,GAC中完全相同的文件(甚至没有重新编译,未移动,未重命名)。你知道我们可能做错了什么吗?

0 个答案:

没有答案