我正在使用基于ASP.NET的Web应用程序配置、操作和控制IIS6.0和更高版本。我正在考虑WMI、ADSI、托管API作为我的选项。
我有一个目标Windows系统WIN 2K 3或更高版本。语言的选择是C#和应用程序必须使用ASP.NET构建。
这篇关于Provisioning Options in IIS 7的文章描述了每一种方法,但我对一些事情有点不确定:
- 对于既定目标来说,哪一个更好或更强大?
*ADSI(System.DirectoryServices
)或
*WMI(Microsoft.Web.Management
)或
*托管API(Microsoft.Web.Administratoion
)?
如果我在这里做错了,请纠正我。
- IIS的更高版本可能支持哪个选项或技术?
- 哪个选项具有最大的灵活性和可扩展性?
- 从哪里可以找到任何建议/选择的技术的资源?
我不太可能在II5.1或更低版本上工作。所以兼容区域从IIS6.0或更高版本开始。应用程序必须使用ASP.NET构建,如果不可避免,可能会使用非托管代码。
2条答案
按热度按时间7lrncoxx1#
对于IIS6,我会使用
System.DirectoryServices
命名空间,它是ADSI周围的托管 Package 器。我发现与使用IISWMI提供程序相比,这更容易使用。对于IIS7,正如Precipitous建议的那样,我将使用新的IIS 7托管代码管理API(
Microsoft.Web.Administration
等)。您可以在IIS7上使用IIS6兼容性组件,这些组件为消费者维护旧风格的ADSI API(但它们是新IIS7组件的 Package 器),它们大多数都能工作。但是,您确实会遇到ADSI Package 器的问题,例如,它们不知道处理程序Map(类似于IIS6脚本Map)属性,如
preConditions
,例如,允许多个版本的ASP.NET处理程序Map定义共同驻留在同一站点或应用程序中。ADSI兼容层将创建称为AboMapperCustom
对象的对象,这些对象是它们的配置是最佳的,并且不知道这些新特征。拥有两个代码库(一个用于IIS6,一个用于IIS7)看起来工作量很大,但老实说,这并不太糟糕。我为一个主机服务商工作,一直在这条路上,我们咬紧牙关,决定保留旧的IIS6代码,但从IIS7重新开始。
ttisahbt2#
对于IIS7和更高版本,您可能需要IIS Management API。我假设您已经阅读了MSDN comparison of administration technologies。考虑到只有一个项目,我将使用您最熟悉的工具。所有涉及直接操作IIS元数据库的内容都需要专门的学习。
考虑到学习曲线,我选择使用WMI。它的使用范围超出了IIS,掌握它感觉像是一项很好的投资。C#支持它很好。如果你知道一点PowerShell,你可以很容易地使用“gwmi”对象来探索它。如果从.NET使用WMI,请从managed code generator开始。