views:

22

answers:

1

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

+1  A: 

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.

Joon