O que é melhor para a administração IIS em ASP.Net: WMI ou ADSI ou API Gerenciada? e qual é a diferença?

StackOverflow https://stackoverflow.com/questions/2226795

Pergunta

Eu estou trabalhando em Configurando e manipular e controlar o IIS 6.0 e versões posteriores, utilizando a aplicação web baseada ASP.Net. Estou pensando API WMI, ADSI, geridos como minhas opções.

Eu tenho um destino do Windows Sistema win2k3 ou versões posteriores. A escolha da linguagem é C # e a aplicação tem que ser construído usando ASP.Net.

Este artigo descreve cada um dos métodos, mas estou um pouco inseguro sobre várias coisas; http://learn.iis.net/ Page.aspx / 283 / provisionamento-opções-em-iis7 / rev / 1

Eu tenho as seguintes questões relacionadas com estas opções.

  1. O que é melhor ou mais poderoso para o objetivo declarado? ADSI (System.DirectoryServices) ou WMI (Microsoft.Web.Management) ou API Gerenciada (Microsoft.Web.Administratoion)? Corrija-me se eu estou fazendo algo errado aqui.

  2. Qual opção ou tecnologia é susceptível de ser suportada para versões posteriores do IIS?

  3. Qual opção tem mais flexibilidade e escalabilidade?
  4. De onde eu posso encontrar os recursos para qualquer da tecnologia sugeriu / escolhido?

Eu sou menos propensos a trabalhar em II5.1 ou abaixo. Assim, a zona de compatibilidade começa a partir de IIS 6.0 e acima. A aplicação tem que ser construído usando ASP.Net e código gerenciado-un pode ser usado se inevitável.

Graças

Saudações

Steve

Foi útil?

Solução

Para IIS6 Eu usaria o System.DirectoryServices namespace que é um wrapper gerenciado em torno de ADSI. Acho isso mais simples de usar em comparação a trabalhar com os provedores de WMI do IIS.

Para IIS7, e como Precipitous sugeriu , eu usaria o novo IIS 7 Managed API Administração Código (Microsoft.Web.Administration et al). Você pode usar os componentes de compatibilidade IIS6 no IIS7 que mantêm para os consumidores (mas são um invólucro em torno dos novos componentes IIS 7) e principalmente o trabalho do velho estilo ADSI da API.

No entanto, você fazer encontrar problemas com os invólucros ADSI. Por exemplo, eles são ignorantes da Handler Mapping (análogo a um Mapa IIS6 Script) propriedades, tais como preConditions que, por exemplo, permitem que várias versões de definições de mapeamento manipulador do ASP.NET para co-residir no mesmo site ou aplicativo. A camada de compatibilidade ADSI irá criar objetos conhecidos como objetos AboMapperCustom que são sub-óptima na sua configuração e não estão cientes desses novos recursos.

Ter dois código-bases (um para IIS6 e um para IIS7) pode parecer um monte de trabalho, mas para ser honesto, não é tão ruim. Eu trabalho para um hoster, ter sido por este caminho, e nós pouco a bala e decidiu que TEREMOS manter o código IIS6 antigo, mas começar de novo com IIS7.

Outras dicas

Para o IIS 7 e para cima, você provavelmente vai querer API IIS Gestão . Eu suponho que você já leu o MSDN da administração tecnologias . Considerando apenas 1 projeto, gostaria de usar qualquer ferramenta que você está mais familiarizado. Tudo que envolve a manipulação direta da metabase IIS requer um esforço dedicado a aprender.

Dada a curva de aprendizado, eu optar por usar WMI. Ele é usado amplamente para além IIS e masterização ela se sente como um bom investimento. C # suporta o seu bem. Se você sabe um pouco PowerShell, você pode facilmente explorá-lo usando o objeto "gwmi". Se estiver usando WMI .NET começar com o href="http://msdn.microsoft.com/en-us/library/2wkebaxa(VS.80).aspx" rel="nofollow noreferrer"> gerador de código gerenciado .

scroll top