0

我有一个尝试创建 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 配置不正确。

4

1 回答 1

0

我发现虽然远程服务器上没有 BizTalk 应用程序,但我尝试部署到的那个名称,在本地服务器上有一个 BizTalk 应用程序,我尝试部署的那个,使用指定的名称。

这不应该阻止我将应用程序部署到远程服务器,但确实如此。

当我使用 MSBuild 扩展包 BizTalk 任务以及尝试使用 btstask.exe 创建远程应用程序时,都会出现此行为。

于 2012-06-26T08:15:15.727 回答