【问题标题】:Alternative to installing IIS locally to access IIS remotely?替代在本地安装 IIS 以远程访问 IIS?
【发布时间】:2010-01-12 18:08:14
【问题描述】:

我有一个应用程序,它使用 DirectoryEntry 对象(在 System.DirectoryServices 中)访问有关在远程计算机上运行在 IIS 上的网站的信息。

任何运行应用程序的客户端计算机都需要安装 IIS,否则应用程序在访问 IIS 信息时会引发 System.Runtime.InteropServices.COMException。

有没有一种方法可以让我只包含一个 dll、添加一个引用或类似的东西,以便能够在没有客户端计算机安装 IIS 的情况下访问该信息?或者有没有更好的方法来访问该信息(也许没有 System.DirectoryServices)也可以绕过这个要求?

编辑:再次查看这个问题,看到问题herehere,我相信不可能使用DirectoryServices 来获取这些信息。我将保留它以供建议替代方案,也许有关 WBEM 脚本的更多信息?

【问题讨论】:

    标签: .net iis directoryservices


    【解决方案1】:

    所以我的理解是,您正在尝试从远程 IIS 服务器获取网站信息,但尝试获取该信息的客户端必须安装 IIS 才能查询这些远程系统。这并不是因为它使用某种网络应用程序来获取信息;它使用了一些在安装 IIS 时安装的功能。

    您需要什么样的信息?您不能使用针对 IIS 机器的 WBEM 脚本来获取您需要的信息吗?

    【讨论】:

    • 我不知道,什么是 WBEM 脚本? ;) 我正在尝试获取在 IIS 中运行的任何网站的文件路径和网站名称/友好名称。除了需要在客户端上安装 IIS 之外,DirectoryServices 也很好用。
    【解决方案2】:

    经过进一步研究:

    Chris 谈到了 WMI 脚本和 System.Management 命名空间,只要您连接到 IIS 6 或更高版本,它们就可以正常工作。

    DirectoryServices 需要安装 IIS,因为它向 ADSI 添加了额外的位,允许它查询 IIS。此外,如果您使用 IIS 5 (Windows XP) 或 IIS 7 (Windows 7) 来获取正确的 ADSI 组件,则需要安装 IIS 6 兼容性管理器。

    IIS 7 的最后一个替代方案是 Microsoft.Web.Administration 命名空间。

    不幸的是,在我的场景中,我需要同时使用 IIS 5 和 IIS 6,这意味着 DirectoryServices 是获得所需内容的唯一方法。幸运的是,我相信只需要安装一个兼容性管理器而不是整个 IIS 服务器(希望这是 Windows XP 上的一个选项...)

    接受 Chris 作为 WBEM 建议的答案,尽管在这种情况下我不能使用它!

    【讨论】:

      猜你喜欢
      • 2018-01-23
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 2013-04-04
      • 2013-01-01
      • 2016-10-05
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多