我有一个尝试创建 BizTalk 应用程序并将其部署到远程服务器的 msbuild 脚本。我使用以下任务:
<MSBuild.ExtensionPack.BizTalk.BizTalkApplication TaskAction="Create" MachineName="$(BizTalkServer)" Applications="$(BizTalkApplicationName)" />
尝试在远程服务器上部署时,出现以下错误
错误:COMException:应用程序注册失败,因为应用程序已经存在。
但事实并非如此,该应用程序不存在。
在网上搜索结果如下链接,建议设置 MSDTC 属性:http ://social.msdn.microsoft.com/Forums/sa/biztalkediandas2/thread/251250c1-3f95-4457-8fbc-0274c722c7b0
但是 DTC 在本地和远程服务器上都是这样设置的:
还值得注意的是,我对远程 BizTalk 服务器运行了另外两个任务,以检查应用程序的存在以及 WCF-SQL 适配器的存在。这两个都成功了。
<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>
更新:
我检查了事件日志。不知道为什么我一开始就没有想到这一点。我收到以下 3 个事件:
第一个事件,Level=Information,Source=Sql 服务器
正在尝试初始化 Microsoft 分布式事务协调器 (MS DTC)。这只是一条信息性消息。无需用户操作。
第二个事件,Level=Information,Source=Sql server
无法联系 Microsoft 分布式事务处理协调器 (MS DTC) 服务。如果您想要分布式事务功能,请启动此服务。
第三个事件,级别=错误,来源=BizTalk
无法与 SQL 实例上的 MessageBox BizTalkMsgBoxDb 通信。错误代码:0x8004d01c。可能的原因包括:
1) MessageBox 不可用。
2) 从这台机器到 MessageBox 的网络链接已断开。
3) 此本地机器或托管此 MessageBox 的机器上的 DTC 配置不正确。