一位同事让我查看在我们的一个 CI 代理上构建的失败 BizTalk 应用程序。长话短说,在导出 .MSI 文件后,部署脚本会尝试导入应用程序的绑定文件。它只旋转了一个小时,然后退出并出现以下错误:
错误:无法更新绑定信息。类型异常 ||'Microsoft.BizTalk.CachingService.NotificationFailedException||' 被抛出。
这些脚本通过以下方式使用 BizTalk PowerShell 管理单元:
Add-PSSnapin –Name BizTalkFactory.PowerShell.Extensions
给出上述错误的行是:
Import-Bindings -Path "BTS:\Applications\$AppToDeploy" -Source "$bindingsFileName"
就 CI 管道而言,这是一个新的应用程序。我尝试在我的本地和另一台开发 BizTalk 机器上运行相同的脚本,它可以顺利导入。
还尝试使用 BizTalk 管理控制台手动导入绑定 xml 文件。它也挂在 CI 盒上,但在开发机器上工作正常。
当它挂起时,如果您查看 SQL(托管在同一台机器上),就会发现有一个阻塞的进程。导致阻塞的进程没有进行任何更新,所以我假设它是某种 DTC 锁。BizTalk 中没有加载其他活动的 SQL 用户或应用程序。CPU 处于空闲状态,内存为 20%,磁盘活动已完全停止。
看起来像是这个新应用程序的 CI 代理机器特有的东西,只是不知道下一步该往哪里看。BizTalk 是否有任何日志或跟踪我可以启用以查看绑定导入在何处以及为何卡住?
PS 其他现有应用程序的绑定导入工作正常。如果我将绑定文件中唯一编排上的程序集版本更改为无效版本,则导入运行正常,但显然应用程序无法正常工作,因为该程序集不存在。