我有一个第 3 方 DLL 的问题,它不是线程安全的,但我需要在业务流程中调用它。
我正在表达式形状内进行 DLL 调用。在许多不同的业务流程中调用相同的 DLL。
我遇到的问题是,对于一系列传入消息,BizTalk 将并行运行多个业务流程(或业务流程的多个实例)——这会导致 DLL 中出现异常。
考虑到重构 DLL 不是一种选择,有什么办法可以解决这个问题。或者,有没有办法限制 BizTalk 在任何时候只运行一个业务流程。(我见过一些将工作池限制为处理器数量的黑客行为,但这似乎没有帮助。我们不能降级到单核机器!)
我宁愿找到一种让 DLL 满意的方法(尽管我想不出如何)而不是限制 BizTalk - 但是如果有一种方法可以限制,那将是一个可接受的短期解决方案,同时我们与第 3 方讨论。(谁是一个大组织,真的应该知道得更好!)