I have an msbuild script that tries to create and deploy a BizTalk application to a remote server. I use the following task:
<MSBuild.ExtensionPack.BizTalk.BizTalkApplication TaskAction="Create" MachineName="$(BizTalkServer)" Applications="$(BizTalkApplicationName)" />
When trying to deploy on a remote server, I get the following error
error : COMException: Application registration failed because the application already exists.
But that is not true, the application does not exist.
Searching on the net results in the following link, suggesting setting the MSDTC properties: http://social.msdn.microsoft.com/Forums/sa/biztalkediandas2/thread/251250c1-3f95-4457-8fbc-0274c722c7b0
But the DTC has been setup like this on both the local and remote server:
It is also worhty of note that I run two other tasks against the remote BizTalk server to check the existence of the application, and the existence of the WCF-SQL adapter. These both succeed.
<MSBuild.ExtensionPack.BizTalk.BizTalkApplication TaskAction="CheckExists" MachineName="$(BizTalkServer)" Application="$(BizTalkApplicationName)">
<Output TaskParameter="Exists"
PropertyName="ApplicationExists" />
</MSBuild.ExtensionPack.BizTalk.BizTalkApplication>
<MSBuild.ExtensionPack.BizTalk.BizTalkAdaptor TaskAction="CheckExists" MachineName="$(BizTalkServer)" AdaptorName="WCF-SQL">
<Output TaskParameter="Exists" PropertyName="AdaptorExists" />
</MSBuild.ExtensionPack.BizTalk.BizTalkAdaptor>
Update:
I inspected the event log. Don't know why I didn't think of that to begin with. I get the following 3 events:
1st event, Level=Information, Source=Sql server
Attempting to initialize Microsoft Distributed Transaction Coordinator (MS DTC). This is an informational message only. No user action is required.
2nd event, Level=Information, Source=Sql server
The Microsoft Distributed Transaction Coordinator (MS DTC) service could not be contacted. If you would like distributed transaction functionality, please start this service.
3rd event, Level=Error, Source=BizTalk
Unable to communicate with MessageBox BizTalkMsgBoxDb on SQL Instance .. Error Code: 0x8004d01c. Possible reasons include:
1) The MessageBox is unavailable.
2) The network link from this machine to the MessageBox is down.
3) The DTC Configuration on either this local machine or the machine hosting this MessageBox is incorrect.
I discovered that although there is no BizTalk application on the remote server, the one I'm attempting to deploy to, with that name, there was a BizTalk application on the local server, the one I'm attempting to deploy from, with the specified name.
That shouldn't prevent me from deploying the application to a remote server but it does.
This behavior is present both when I use the MSBuild extension pack BizTalk tasks, and when I try to use btstask.exe to create a remote application.
User contributions licensed under CC BY-SA 3.0