2009-10-09 49 views
0

我试图在我的测试环境中重现服务器场,以便为我正在忙于设计的应用程序尝试一些内容。.NET托管的工作流程集群问题

我有两个Web服务器,分别运行IIS 6.0和7.0,每个托管一个具有完全相同的DLL的工作流服务。他们共享一个持久性数据库。

当ServerA将工作流保存到持久性存储中时,对于后续请求,ServerB很乐意加载工作流实例并对其执行一些操作。一旦ServerB保存了工作流程,ServerA在尝试对工作流程执行进一步调用时会得到序列化异常。如果我使用与ServerB不同的服务器,我会得到相同的行为。

而且我可以通过使用两台不同的服务器并将ServerA排除在等式之外解决问题。

虽然我的问题是:我怎样才能调试到底为什么ServerA不会加载其他机器保存的工作流?

更新 - 我曾尝试两个IIS 6.0服务器,同样的操作系统和同样强烈的名字组件 - 并有完全相同的问题

+0

你可以发布你看到的例外的细节吗? – Maurice 2009-10-09 09:58:58

回答

1

OK,我想它了。

ServerA为.NET安装了一个修补程序,这意味着被序列化的其中一个类的实际二进制签名是不同的。

纯粹的机会,它可以反序列化,而不是其他。

我加载了所有服务器上的修补程序,现在序列化工作正常。