Search code examples
biztalkbiztalk-2010

Why do the bindings on my Orchestration change when I install an msi?


One of our projects consists of multiple simple Orchestrations. Whenever I deploy the Orchestrations in an msi from the Dev to live environment, the bindings on 2 of them change (The msi has no bindings in it). These Orchestrations have 2 send-ports, one to live and one to a backup location.

So far, in both cases where the send-Port has a changed binding it has been the backup send-port that suddenly changes and the send-ports that change have been consistent. out of a total of 12 ports on 6 Orchestrations in this one project, it is always the same two that change.

But why do they change? And why does it seem to be in a way that makes no sense? The send-ports on Dev have unrelated quickly named send-ports that couldn't change the ones on live. The only thing I can think of is that the initial configuration was wrong and that every new installation of the msi resets the Orchestration to this initial configuration.

Development settings Development settings

Live settings before install of MSI Live settings before install of MSI

Live settings after install of MSI Live settings after install of MSI


Solution

  • Have a look in the folder %APPDATA%\Microsoft\BizTalk Server\Deployment\BindingFiles\

    You will find that there will be some binding files in there including one that contains your bad configuration. Delete all the files in that folder and with the next deployment it will re-create it with the latest binding configuration. It seems that BizTalk takes a copy of the binding to re-apply after a MSI is deployed, however it seems to have a bug and sometimes doesn't detect that it has changed and does not re-export the binding to that cache and so ends up using a old copy.

    Best practice is actually to apply the bindings you want after every deployment and that these bindings are under source control.