.NET托管工作流集群问题

发布于 2024-08-07 03:21:30 字数 444 浏览 3 评论 0原文

我正在尝试在我的测试环境中重现服务器场,以便为我正在忙于设计的应用程序尝试一些东西。

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

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

我可以通过使用两台不同的服务器并将 ServerA 排除在外来解决该问题。

但我的问题是:如何准确调试 ServerA 不会加载其他计算机保存的工作流程的原因?

更新 - 我确实尝试使用两个 IIS 6.0 服务器、相同的操作系统和相同的强名称程序集 - 并且遇到了完全相同的问题

I am attempting to reproduce a server farm in my test environment, in order to try something out for an application that I am busy designing.

I have two web servers, running IIS 6.0 and 7.0 respectively, each hosting a workflow service with exactly the same dlls. They share a persistence database.

When ServerA saves the workflow to the persistence store, on a subsequent request ServerB is happy to load the workflow instance and do some work on it. Once ServerB has saved the workflow, ServerA gets a serialization exception when attempting to perform a further call on the workflow. I get the same behaviour if I use a different server as ServerB.

And I can fix the problem by using two different servers and leaving ServerA out of the equation.

My question though is: How can I debug exactly why ServerA will not load workflows saved by other machines?

Update - I did try with two IIS 6.0 servers, same OS and same strongly names assemblies - and had the exact same issue

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷你仙 2024-08-14 03:21:30

好吧,我明白了。

ServerA 安装了 .NET 修补程序,这意味着正在序列化的类之一的实际二进制签名是不同的。

纯粹出于偶然,它可以以一种方式反序列化,而不能以另一种方式反序列化。

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

OK, I figured it out.

ServerA had a hotfix installed for .NET, which meant that the actual binary signature of one of the classes being serialized was different.

By pure chance it can be deserialised one way and not the other.

I loaded the hotfix on all of the servers, and now the serialization works correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文