如何找出当前的Biztalk主机进程

问题描述:

我想知道在运行时我的当前代码正在执行的几个可能的主机进程中的哪一个。主机进程在Biztalk管理级别配置了名称,但是我需要从代码中知道我正在使用哪个进程。如何找出当前的Biztalk主机进程

我没有找到任何支持的方式来做到这一点,我甚至坚持寻找不支持的方法:-)

编辑:感谢tomasr答案。我会主要用于记录/追踪目的。不仅要显示颂歌运行的主机,还要确定适当的跟踪级别。

这也意味着,我需要这个在图书馆层面的内容,它必须快速。我不能去拿调用堆栈来找出哪个*组件(编排,管道,不管)运行的代码。

另一方面,我可以想出它只是一次一个单例构造函数。这将被称为每个AppDomain一次,因此可能需要一些时间来查找事情。但我可能没有一个非常有意义的调用堆栈,所以我们回到了第一个方法: -/

Edit2:Biztalk管理数据库必须包含我需要的信息。它知道哪些主机在哪个服务器上启动以及(可能)这些主机进程的进程ID。如果有人有指针可以开始在那里寻找,那也能帮助我。

据我所知,没有任何“简单”的做法。获得该信息的一种(稍微向后)的方式是使用ExplorerOM API来查询管理配置数据并找出您正在执行的位置以及您正在运行的主机/处理程序。

例如,if您正在使用PipelineComponent执行此操作,您可以在消息上下文中查找端口名称,然后使用ExplorerOM查看它。然后,使用它来查询与适配器关联的处理程序,并从那里获取主机名。虽然你会寻找完整的编排名称,但是对于编排来说会是类似的东西。

出于好奇,你为什么需要这些信息?