在ASP.NET中,以下哪种方法更适合IIS管理:WMI或ADSI或托管API?有什么区别?

w8rqjzmb  于 2023-03-04  发布在  .NET
关注(0)|答案(2)|浏览(104)

我正在使用基于ASP.NET的Web应用程序配置、操作和控制IIS6.0和更高版本。我正在考虑WMI、ADSI、托管API作为我的选项。
我有一个目标Windows系统WIN 2K 3或更高版本。语言的选择是C#和应用程序必须使用ASP.NET构建。
这篇关于Provisioning Options in IIS 7的文章描述了每一种方法,但我对一些事情有点不确定:

  • 对于既定目标来说,哪一个更好或更强大?
    *ADSISystem.DirectoryServices)或
    *WMIMicrosoft.Web.Management)或
    *托管APIMicrosoft.Web.Administratoion)?

如果我在这里做错了,请纠正我。

  • IIS的更高版本可能支持哪个选项或技术?
  • 哪个选项具有最大的灵活性和可扩展性?
  • 从哪里可以找到任何建议/选择的技术的资源?

我不太可能在II5.1或更低版本上工作。所以兼容区域从IIS6.0或更高版本开始。应用程序必须使用ASP.NET构建,如果不可避免,可能会使用非托管代码。

7lrncoxx

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重新开始。

ttisahbt

ttisahbt2#

对于IIS7和更高版本,您可能需要IIS Management API。我假设您已经阅读了MSDN comparison of administration technologies。考虑到只有一个项目,我将使用您最熟悉的工具。所有涉及直接操作IIS元数据库的内容都需要专门的学习。
考虑到学习曲线,我选择使用WMI。它的使用范围超出了IIS,掌握它感觉像是一项很好的投资。C#支持它很好。如果你知道一点PowerShell,你可以很容易地使用“gwmi”对象来探索它。如果从.NET使用WMI,请从managed code generator开始。

相关问题