Publish orchestration as web service woes
We’ve created an orchestration, published it as a web service and created a test client to call the web service, all deployed and tested. Standard stuff.
Then we decided we need another part to our message, so we went back to the orchestration and changed the message type definition to include that second part. since I use multi part messages for every message anyway, adding a part was quite easy.
For the sake of being accurate I’ll mention that we have an empty orchestration in another, referenced, assembly in which we declare types that we share between orhcestrations. this makes things a little bit easier when many assemblies are involved.
After changing the message type we built both orchestrations and re-run the web services publishing wizard, but to our surprise the generated web service did not have the additional part. It was generated as if we did nothing.
After checking ourselves about a million times, and seconds before I seriously considered a career change, we figured out that it was all because the old assemblies, previously deployed to allow us to run the tests, were still in the GAC.
Since we are still in development mode, we did not increment a version of the assembly. With an assembly of the same version in the GAC I assume that when the wizard need to load the assembly it took the GAC-ed one rather then loading it from the path we’ve provided in the first step of the wizard.
This is very confusing and I’d wish it would load the assembly form the path provided to it as expected or at least warn if it’s going to take another one.
Anyway, once we’ve discovered the problem it was, of course, very easy to correct. We simply deleted the previous version from the GAC and the new one was picked up all right.