【问题标题】:BizTalk WMI Remote WrapperBizTalk WMI 远程包装器
【发布时间】:2010-12-12 20:20:53
【问题描述】:

我正在使用 .Net Framework SDK 中的 MgmtClassGen.exe 为主机、主机实例等 BizTalk 工件生成一些 WMI 包装类。

我正在使用 HostSetting.GetInstances() 来获取本地主机(本地 BizTalk Server)。这工作正常。我现在正在寻找一种方法来对另一台具有不同 BizTalk 管理数据库名称的 BizTalk 机器上的主机执行相同的操作。我找不到使用包装类的方法。我确实想要包装类。知道如何连接到服务器“ServerX”上名为“MyManagementDB”的 BizTalk 管理数据库吗?

提前致谢!

【问题讨论】:

    标签: wmi biztalk


    【解决方案1】:

    您可以通过在 WMI 范围声明中指定来选择要连接的不同服务器。

    在您的代码中,您将有如下内容:

    ManagementClass objHostSettingClass = new ManagementClass("root\\MicrosoftBizTalkServer", "MSBTS_HostSetting", null);
    

    构造函数调用中的第一个参数是作用域。这可以包括如下所示的服务器名称:

    ManagementClass objHostSettingClass = new ManagementClass("\\\\ServerX\\root\\MicrosoftBizTalkServer", "MSBTS_HostSetting", null);
    

    我认为您不需要知道消息框名称 - WMI MicrosoftBizTalkServer 提供程序应该允许您直接访问服务器上的主机实例。

    编辑

    正如 Maxime 在下面的评论中指出的,有一种设置 WMI 范围的方法,它与 MgmtClassGen.exe 工具生成的代码更加集成。

    这允许您设置生成的类的StaticScope 属性。这仍然涉及构建一个定义范围的字符串,但提供了一个定义它的位置。 Maxime 有一篇不错的帖子,它定义了一个构建 StaticScope 字符串的辅助类。

    【讨论】:

    • 或者,要使用更“集成”的语法,您可以利用由 MgmtClassGen.exe 生成的强类型类具有可用于访问相关的“StaticScope”属性的事实来自远程主机的工件。请查看我的博客条目以获取更多信息:maxime-labelle.spaces.live.com/blog/…
    • 感谢 maxime - 我从来没有真正使用过 MgmtClassGen.exe 工具,因此根据 WMI 第一原则进行了回答。希望您不介意我将上述信息编辑到我的答案中以提供更好的答案。
    【解决方案2】:

    我知道这可能会被认为是题外话,因为您在某种程度上是专门询问 WMI,但还有一个 .NET 库可以访问所有称为 Microsoft.BizTalk.ExplorerOM.dll 的 BizTalk 工件。我用它在一个小型 C# 应用程序中打开/关闭接收位置。这是我之前的 Stack Overflow 问题的链接,其中包含更多信息:

    Is there a way to automate turning a BizTalk Receive Location on or off through code?

    通过代码更改或管理 BizTalk 工件的另一种选择。

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多