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サーバーに対して他の2つのタスクを実行して、アプリケーションの存在と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つのイベントが発生します。
最初のイベント、レベル=情報、ソース=SQLサーバー
Microsoft分散トランザクションコーディネーター(MS DTC)の初期化を試みています。これは情報メッセージです。ユーザーの操作は必要ありません。
2番目のイベント、レベル=情報、ソース=SQLサーバー
Microsoft分散トランザクションコーディネーター(MS DTC)サービスに接続できませんでした。分散トランザクション機能をご希望の場合は、このサービスを開始してください。
3番目のイベント、Level = Error、Source = BizTalk
SQLインスタンスでMessageBoxBizTalkMsgBoxDbと通信できません..エラーコード:0x8004d01c。考えられる理由は次
のとおりです。1)メッセージボックスが使用できない。
2)このマシンからMessageBoxへのネットワークリンクがダウンしています。
3)このローカルマシンまたはこのMessageBoxをホストしているマシンのDTC構成が正しくありません。