【发布时间】:2018-12-04 14:57:57
【问题描述】:
一位同事让我查看在我们的一个 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 是否有任何我可以启用的日志或跟踪,以查看绑定导入在哪里以及为什么会卡住?
附:其他现有应用程序的绑定导入工作正常。如果我将绑定文件中唯一编排的程序集版本更改为无效版本,则导入运行正常,但显然应用程序无法正常工作,因为该程序集不存在。
【问题讨论】:
-
您是否尝试过停止所有主机和企业 SSO,然后重新启动它们?甚至重新启动服务器?还有这个论坛帖子social.msdn.microsoft.com/Forums/en-US/…
-
@Dijkgraaf,是的,做到了。还尝试对后来的 SP 进行 SQL 修补,然后我又重新启动了机器。至于提到的帖子,所有主机实例似乎都是有效的,因为所有其他使用它们的应用程序都可以正常导入绑定。
-
该环境中安装了哪些 CU/功能包?和其他环境一样吗?您是否尝试过从绑定中完全删除编排?您是否尝试过从 CI 环境中导出绑定并比较编排的详细信息?即使它没有绑定到端口,您仍然应该在绑定中看到编排。
-
相同版本:3.12.774.0 和功能包。删除编排会导致成功导入。删除端口引用没有任何区别,仍然挂起。在 CI 机器上,将导出的绑定与我们尝试导入的绑定进行比较表明它(编排)未与主机关联,并且它们具有不同的跟踪选项以及端口引用(如预期的那样)。 Dev 反映来自导入绑定的值。不过,这确实给了我一个想法,修改基线导出,逐个添加每个选项。痛苦,不过不超过过去 2 天 :)
标签: teamcity biztalk biztalk-2016