我有一个asp.net应用程序,以启动/停止BizTalk Server 2006 r2的应用程序和端口。我使用“Microsoft.Biztalk.explorerom.dll(C:/ Program Files / BizTalk Server 2006 / Developer工具)”来实现这一目标。由于商务谈话服务器安装在本地机器上,因此在开发机器上工作正常。但是在生产环境(asp.net web服务器,windows 2003和iis 6.0)中......这给了System.nullreferenceexception(对象引用未设置..)
BtsCatalogExplorer explorer = (BtsCatalogExplorer)myGroup.CreateInstance(typeof(BtsCatalogExplorer))
我的BizTalk服务器和SQL服务器位于两个不同的盒子上。在我的设置(asp.net Web应用程序)中..将Microsoft.Biztalk.explorerom.dll和Microsoft.Biztalk.Applicationdeployment.engine.dll添加到GAC。但仍然没有运气。
即使我连接到不同的BizTalk服务器,是否需要在本地计算机上安装BizTalk服务器?
答案 0 :(得分:0)
我担心我必须回答“是的,如果你想使用BTSCatalogExplorer,你必须安装BizTalk”。我很确定BT 2006和早期版本都是如此。只需要安装。它不必是运行任何东西的活动成员(即。没有主机实例),只是该组的一部分。
我也知道BT 2009带有一个新的“构建工具”。这允许您在没有安装BT的情况下构建BT项目。也许这也允许远程通信到BT管理数据库(通过BTSCatalogExplorer),但我没有调查过或试过这个。
希望这会有所帮助;是的,WebFarms和BT是一个昂贵的选择。咨询;从外面做一个直通服务,将所有服务传递给安装了BT的机器。节省了大量许可证(但可能是性能瓶颈)
希望这有帮助,
答案 1 :(得分:0)
我也向微软提出了有效的问题。最重要的是,它是一个许可问题。您必须拥有BT的许可才能使用对象模型。
我从未试图让“仅库”版本起作用。我刚刚选择了传递网络服务。
只是跟进你当前的想法/进展;您可能想要检查主BTSExplorerOM.dll的依赖关系链,看看是否有任何错过的引用。我非常确定它总共使用了2个以上的装配体。
BT使用许多不同的目录来存储其程序集(管道组件从BT的子目录加载,而不是例如GAC)。
你能从你收到的“NullReferenceException”中获得更多细节吗?喜欢哪个对象/库导致它。您可以尝试使用FUSLOGVW.exe来查看所有程序集的融合是否成功并从那里获取。
希望这有帮助,