0

我想在运行时知道我当前的代码正在执行的几个可能的主机进程中的哪一个。主机进程已在 Biztalk 管理级别配置名称,但我需要从代码内部知道我所在的进程。

我没有找到任何受支持的方法来做到这一点,我什至一直在寻找不受支持的方法:-)

编辑:感谢 tomasr 的回答。我需要它主要用于记录/跟踪目的。不仅要显示运行 ode 的主机,还要确定适当的跟踪级别。

这也意味着,我需要在图书馆层面深入了解它,而且它必须很快。例如,我不能去获取调用堆栈来找出代码正在运行的顶级组件(编排、管道等)。

另一方面,我只能在单例构造函数中弄清楚一次。这将在每个 AppDomain 中调用一次,因此可能需要一些时间来查找。但我可能在那里没有非常有意义的调用堆栈,所以我们回到第一方:-/

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

4

1 回答 1

1

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

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

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

于 2008-09-26T12:30:13.547 回答