替代在本地安装IIS以远程访问IIS?

时间:2009-11-16 14:52:36

标签: .net iis directoryservices

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

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

有没有一种方法可以只包含一个dll,添加一个引用,或类似的东西,以便能够访问该信息而无需客户机安装IIS?或者是否有更好的方法来访问那些也会绕过这个要求的信息(可能没有System.DirectoryServices)?

编辑:再次查看此问题,并查看问题herehere,我认为无法使用DirectoryServices获取此信息。我会保留它以供建议的替代方案,也许有关WBEM脚本的更多信息?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

经过进一步研究:

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建议的答案,即使我在这种情况下不能使用它!