是否可以让相同的程序集在不同的 BizTalk 2006 应用程序中表现不同?
例如,是否可以在程序集中以某种方式访问正在使用该实例的 BizTalk 应用程序 ID 或名称,然后使其对不同的 BizTalk 应用程序具有不同的行为?
或者可以通过其他方式完成,而不是对程序集进行版本控制?
是否可以让相同的程序集在不同的 BizTalk 2006 应用程序中表现不同?
例如,是否可以在程序集中以某种方式访问正在使用该实例的 BizTalk 应用程序 ID 或名称,然后使其对不同的 BizTalk 应用程序具有不同的行为?
或者可以通过其他方式完成,而不是对程序集进行版本控制?
你到底想完成什么?也就是说,你试图引入什么样的行为差异?
事情的真相是,没有万无一失的方法可以找出您的代码在哪个 BizTalk 应用程序中执行,因为 BizTalk 中的应用程序概念纯粹是一个管理工件。在某些受限情况下,您可以使用 ExplorerOM 访问管理数据库并执行一些查询来确定工件(端口、编排)属于哪个应用程序,但这可能会很慢,并且可能需要您调整安全性。
它也可能不会给您预期的结果,具体取决于您是否有通过消息传递或编排调用跨越应用程序边界的消息。
也许如果你能分享更多关于你需要什么的信息,我可以尝试提供更好的建议!
我认为不同程序集的版本控制听起来就像您正在寻找的那样?
我通过使用版本控制解决了它,我没有找到其他方法。
我想让同一个 biztalk 应用程序的多个“实例”一起运行,但使用不同的配置(不仅仅是不同的绑定)来模拟不同的环境,但使用相同的 biztalk 实例。因此它可以与同样复制在同一台机器上的其他软件以及代表自己相同环境和不同数据库的外部系统进行交互。
问题是我必须使用不同的连接字符串来定义不同的数据库,每个数据库用于 BTSNTSvc.Exe.Config 文件中的每个环境。但是由于程序集是相同的,我无法让每个 biztalk 应用程序使用它自己的连接字符串,除非每个程序集在运行时知道如何做出该决定(例如,通过知道它属于哪个环境)。
所以现在,我有编译和部署多个版本的脚本,并更改要使用的连接字符串的名称以及程序集的版本(使用编译符号)。
谢谢你的帮助。