Introdução ao Gerenciador do IIS no IIS

pela equipe do IIS, Tobin Titus

Compatibilidade

Versão Observações
IIS 7.0 e posteriores Os recursos descritos neste artigo foram introduzidos nos IIS 7.0.
IIS 6.0 e versões anteriores Os recursos descritos neste artigo não tinham suporte antes dos IIS 7.0.

Introdução

O IIS 7.0 e versões posteriores têm uma nova interface de usuário de versões anteriores do IIS: o Gerenciador do IIS. Este artigo descreve a aparência, a delegação de recurso, a interação com a configuração e a comunicação remota. Observe que algumas versões do IIS podem não ter algumas das funcionalidades/recursos discutidos neste documento.

Por que teve que mudar? Aqui estão algumas das principais razões:

  • O IIS e ASP.NET funcionam juntos: os usuários do IIS 6.0 clicam com o botão direito do mouse em um site, selecionam "Todas as propriedades" e obtêm uma caixa de diálogo com várias guias para diferentes configurações. Com o IIS 7.0 e versões superiores, o Gerenciador do IIS precisava mostrar a configuração de novos recursos, como Cache de Saída, Rastreamento de Solicitação com Falha e Filtragem de Solicitações, bem como a configuração do ASP.NET e partes relevantes do .NET Framework. A nova funcionalidade exigiria muito mais de novas guias, uma opção inaceitável.
  • Administração Delegada: mover nossa configuração da metabase para o sistema de configuração .NET significa que os usuários podem, se permitido, definir a configuração do IIS em arquivos web.config. Por exemplo, a configuração de um aplicativo http://www.contoso.com/sales pode ser gravada no arquivo de configuração raiz applicationHost.config, no arquivo web.config do site http://www.contoso.com/ ou diretamente no arquivo web.config do aplicativo. O novo Gerenciador do IIS deve: 1) permitir que um administrador controle a configuração permitida nos arquivos web.config, 2) mostrar ao administrador/usuário onde a configuração está sendo gravada. O Gerenciador do IIS mais antigo não estava à altura desses desafios.
  • Razões de Engenharia: o software tem um prazo de validade. O tempo traz novas tecnologias, novos requisitos, novas convenções, e chega um ponto em que a atualização do software existente se torna mais trabalhosa e cara do que a recompilação do software. O Gerenciador do IIS estava se aproximando do fim de sua vida útil.

O que mais devo saber? Depois que decidimos reescrever o Gerenciador do IIS, aproveitamos a oportunidade para aprimorá-lo de várias maneiras:

  • Extensibilidade: a extensão da versão do IIS 6.0 do Gerenciador do IIS era proibitivamente difícil. O novo Gerenciador do IIS facilita muito a adição de páginas de recursos, nós de exibição em árvore e itens de menu; tudo usando código gerenciado e WinForms. Novas extensões do Gerenciador do IIS são detectadas e baixadas automaticamente por clientes remotos do Gerenciador do IIS que se conectam ao servidor.
  • Administração Remota: a administração remota é toda feita por HTTPS, tornando-a amigável e fácil de gerenciar. O WMSVC (Serviço de Gerenciamento da Web) é o componente opcionalmente instalável que permite a administração remota.
  • Nova Aparência: o Gerenciador do IIS precisava de um modelo mais escalonável para expor as configurações, e a exibição de lista de recursos resultante é semelhante ao Painel de Controle. Um modo de exibição de lista pode ser classificado, agrupado e visualizado de diferentes maneiras, facilitando a localização do que você está procurando. A navegação do Gerenciador do IIS também assumiu uma aparência mais semelhante à do navegador com uma barra de endereços à la Windows Explorer.

Observação

Este documento foi escrito para o Windows Server 2008. O Windows Vista® pode não ter algumas das funcionalidades/recursos discutidos neste documento.

Nova aparência

O Gerenciador dos Serviços de Informações da Internet (IIS) teve navegação do tipo Voltar/Avançar em versões anteriores, e o novo Gerenciador do IIS leva isso ainda mais longe adicionando uma barra de endereçosque funciona como o Windows Explorer.

Captura de tela da tela I I S Manager mostrando a página inicial do site padrão.

Figura 1: Novo Gerenciador do IIS

Home Page

A Home Page se tornará muito familiar assim que você começar a usar o Gerenciador do IIS. A lista de recursos no meio pode ser classificada por nome ou descrição do recurso, agrupada por área ou categoria e exibida em layouts diferentes.

Captura de tela do painel inicial do site padrão mostrando agrupamento, exibições e lista de recursos.

Figura 2: Agrupamento no Gerenciador do IIS

Escopos de recursos

Os nós de servidor, site, aplicativo, diretório virtual e pasta no modo de exibição em árvore mostram uma Página inicial com uma lista de recursos. A maioria dos recursos aparece nas Páginas iniciais para todos esses nós, mas há exceções.

Esses recursos aparecem na página inicial do servidor somente porque são configuração, dados ou informações de todo o servidor:

  • Restrições ISAPI e CGI
  • Certificados (mas não aparece em conexões remotas)
  • Serviço de Gerenciamento (mas não aparece em conexões remotas)
  • Processos de Trabalho

Esses recursos aparecem em todos os lugares, exceto na Página Inicial do servidor, porque são configuração de aplicativo e não são lógicos no nível do servidor, ou porque funcionam melhor dessa maneira (SSL):

  • Usuários associados
  • Funções de associação
  • Perfil
  • SSL

Os recursos associados à delegação têm regras especiais para onde aparecem:

  • Delegação de Recursos: sempre aparece apenas para o nó raiz de uma conexão
  • Administradores: aparece apenas para nós Servidor, Site e Aplicativo

Layouts da Página de Recursos

Há três tipos de páginas no IIS

Página de Lista

As páginas de lista contêm listas. A maioria das páginas de lista permite agrupar por valores em uma ou mais colunas. As páginas de lista principais, como Sites e Pools de Aplicativos, permitem filtrar as entradas da lista pesquisando em uma coluna de lista as entradas que correspondem a uma cadeia de caracteres de pesquisa.

Captura de tela de uma parte da tela do I I S Manager mostrando o menu Ir e o painel Ações.

Figura 3: Página de Lista do Gerenciador do IIS

As tarefas Adicionar/Editar/Remover no painel de tarefas permitem manipular o conteúdo da lista. As configurações de recurso que não são específicas de uma entrada de lista, por exemplo, especificando que erros personalizados devem ser substituídos por erros detalhados para solicitações locais, geralmente são configuradas por meio da tarefa Editar Configurações de Recurso...

Captura de tela da página de configurações de recursos mostrando o painel de alerta.

Figura 4: Ações do Gerenciador do IIS

Grade de propriedades

As páginas de grade de propriedades mostram grades de propriedades relacionadas. O seletor de Dispositivo de Vídeo na parte superior da grade de propriedades permite que você escolha se deseja exibir nomes de propriedade amigáveis, os nomes de propriedade de configuração ou ambos. A captura de tela abaixo mostra ambos os nomes.

Captura de tela da página da grade de propriedades mostrando nomes amigáveis e de configuração.

Figura 5: Grades de Propriedades no Gerenciador do IIS

Caixa de diálogo

As páginas de diálogo têm caixas de seleção, caixas de texto e botões de opção e, geralmente, são o tipo de página mais familiar. Use Aplicar/Cancelar no painel de tarefas para salvar as alterações.

Exibição de conteúdo

A Exibição de Conteúdo é uma exibição somente leitura; Não é possível criar, copiar, mover ou excluir arquivos ou pastas nesse modo de exibição. Você pode entrar no Modo de Exibição de Conteúdo clicando em "Modo de Exibição de Conteúdo" no alternador de Exibição de Recursos/Modo de Exibição de Conteúdo na parte inferior do painel do meio do Gerenciador do IIS ou clicando com o botão direito do mouse em um nó de exibição em árvore e selecionando "Alternar para o Modo de Exibição de Conteúdo".

A única maneira de definir a configuração de um arquivo é alternar para o Modo de Exibição de Conteúdo, selecionar o arquivo e clicar em "Alternar para o Modo de Exibição de Recursos" no menu do botão direito do mouse ou no painel de tarefas.

Captura de tela mostrando as opções de Exibição de Recursos e Exibição de Conteúdo.

Figura 6: Alternar para o Modo de Exibição de Recursos

Delegação de Recurso

Talvez você esteja interessado na delegação de recursos se for um administrador de servidor e não for a principal pessoa que fornece conteúdo no servidor ou se for um desenvolvedor e quiser mais controle sobre a configuração do IIS para seu aplicativo.

Delegação de recursos do IIS significa gerenciar:

  • bloqueio de seção de configuração para controlar qual configuração pode ser definida em web.config (geralmente, uma seção de configuração do IIS é igual a um módulo do IIS)
  • o conjunto de usuários de sites e aplicativos que têm permissão para usar o Gerenciador do IIS para exibir a configuração e definir a configuração de recursos com seções de configuração desbloqueadas

O que se segue é uma explicação superficial da delegação de recursos no Gerenciador do IIS. Para obter um passo a passo detalhado, consulte Como gerenciar a delegação de recursos.

Bloqueio de Configuração

Se uma seção de configuração estiver "bloqueada" por padrão, ela só poderá ser configurada em applicationHost.config. O Gerenciador do IIS fornece um meio para os administradores do servidor "desbloquearem" as seções de configuração do IIS. Uma vez que uma seção de configuração é desbloqueada, ela pode ser definida em arquivos web.config por não administradores.

Por exemplo, o recurso "Páginas de Erro Personalizadas" no Gerenciador do IIS interage com a configuração na seção "system.webServer/httpErrors". Se o administrador do servidor usar o Gerenciador do IIS ou appcmd para desbloquear a seção de configuração system.web/httpErrors, a seção httpErrors aparecerá dentro de uma marca de local com overrideMode="allow" em applicationHost.config:

<location path="" overrideMode="Allow">
    <system.webServer>
        <httpErrors/>
    </system.webServer>
</location>

OverrideMode="allow" significa que é válido definir a configuração para httpErrors em um arquivo web.config:

<configuration>
   <system.webServer>
      <httpErrors>
         <remove statusCode="404" subStatusCode="-1" />
         <error statusCode="404" path="/errors/404.aspx" responseMode="Redirect" />
      </httpErrors>
   </system.webServer>
</configuration>

Consulte a seção "Conexões de Servidor, Site e Aplicativo" abaixo para ver como o bloqueio de configuração afeta as conexões. Para obter informações detalhadas sobre bloqueios de configuração, consulte Como Usar o Bloqueio de Configuração.

Administradores de Sites e Aplicativos

Além disso, os administradores de servidor podem permitir que não administradores usem o Gerenciador do IIS para se conectar a um site ou aplicativo. Os não administradores que podem se conectar a sites ou aplicativos são chamados de "Administradores de Site" ou "Administradores de Aplicativos" e podem:

  • Gerenciar a configuração desbloqueada para seu site ou aplicativo (as configurações são gravadas em arquivos web.config)
  • Exibir definições de configuração bloqueadas sem poder modificá-las
  • Adicionar outros administradores de site ou aplicativo para seu site ou aplicativo

Para obter informações sobre como criar administradores de site e aplicativo, consulte a documentação online Criar Administradores de Site e Aplicativo para Delegação.

Conexões de Servidor, Site e Aplicativo

Somente administradores de computador podem usar o Gerenciador do IIS para se conectar a um servidor Web. As conexões de servidor podem gravar em arquivos de configuração raiz, applicationHost.config e web.config raiz, e em todos os arquivos web.config distribuídos. Se uma seção de configuração estiver bloqueada em applicationHost.config, o recurso correspondente será lido/gravado em uma conexão de servidor porque as alterações de configuração são gravadas em applicationHost.config em uma marca de local.

Os administradores de computador e os administradores de site designados podem se conectar a sites. As conexões de site só podem gravar em arquivos web.config na pasta raiz do site. Se uma seção de configuração estiver bloqueada em applicationHost.config, o recurso correspondente aparecerá como somente leitura nas conexões de site porque as conexões de site não podem gravar a configuração em applicationHost.config (mesmo em uma marca de local). Isso afeta os administradores de computador e os Administradores de Site.

Figura 7: Hierarquia de Configuração no Gerenciador do IIS

Os administradores de computador, os Administradores de Aplicativos designados e os Administradores de Site do site pai do aplicativo podem se conectar a um aplicativo. As conexões de aplicativo só podem gravar em arquivos web.config na pasta raiz do aplicativo. Se uma seção de configuração estiver bloqueada em applicationHost.config ou no arquivo web.config do site, o recurso correspondente aparecerá somente leitura nas conexões do aplicativo.

Para obter informações sobre como se conectar a um servidor, site ou aplicativo, consulte a documentação online sobre Gerenciamento de Conexões no IIS 7.0.

Configuração

Mesmo que você nunca altere o bloqueio de configuração e nunca use a delegação de recursos, em algum momento você vai se perguntar como o Gerenciador do IIS decide onde gravar a configuração. Há duas regras que definem esse comportamento:

  • ApplicationHost.config vs. Web.config raiz: se o recurso estiver listado na área ASP.NET no Gerenciador do IIS, a configuração no nível do servidor será gravada no arquivo web.config raiz do .NET Framework v2.0. Se o recurso estiver listado na área do IIS no Gerenciador do IIS, a configuração no nível do servidor será gravada em applicationHost.config. A única exceção a essa regra é a Autenticação de Formulários, que está no recurso Autenticação na área do IIS.
  • Configuração bloqueada versus desbloqueada: todas as seções de configuração do ASP.NET e algumas seções de configuração do IIS são desbloqueadas por padrão. Para seções desbloqueadas, o Gerenciador do IIS gravará no web.config do site se a configuração for alterada para o site ou a configuração de um aplicativo se a configuração for alterada para um aplicativo. A maioria das seções de configuração do IIS está bloqueada por padrão. Para seções bloqueadas, o Gerenciador do IIS sempre gravará em applicationHost.config mesmo ao modificar a configuração de sites e aplicativos.

Barra de status

A barra de status mostra onde o Gerenciador do IIS gravará a configuração:

Configuração: '<config_file_object_path>' <config_file_name>, <location path="<path>">

O <config\_file\_object\_path> é o caminho para o objeto do arquivo de configuração, por exemplo:

  • "localhost": configuração no nível do servidor; applicationHost.config para recursos do IIS, web.config raiz para recursos ASP.NET.
  • "localhost/Site padrão": o arquivo web.config na pasta física do site padrão
  • "localhost/Default Web Site/careers/technical": o arquivo web.config na pasta física que mapeia para a URL "/careers/technical" no Site padrão

O <config\_file\_name> é o nome do arquivo de configuração de destino, por exemplo:

  • "applicationHost.config ou Web.config raiz": applicationHost.config para recursos do IIS, web.config raiz para recursos do ASP.NET
  • "web.config": um arquivo web.config no namespace da Web

O <location\_path> é o caminho de local para o objeto que está sendo configurado (para obter mais informações sobre caminhos de local, consulte Visão Geral da Configuração). Essa parte do texto só aparece se a seção de configuração do recurso estiver bloqueada em um nível mais alto.

Captura de tela mostrando a opção Alternar para o Modo de Exibição de Recursos selecionada e o painel Ações.

Exemplo: gravando em ApplicationHost.config versus Web.config raiz

A compactação é um recurso do IIS e aparece no IIS se você agrupar/filtrar a lista de recursos da página inicial por área. Se você tiver navegado até a página Compactação no nível do servidor e desabilitar a compactação estática, o Gerenciador do IIS gravará essa configuração em %windir%\Windows\system32\inetsrv\applicationHost.config:

<urlCompression doStaticCompression="false" />

A Compilação do .NET é a configuração do .NET Framework e aparece em ASP.NET se você agrupar/filtrar a lista de recursos da página inicial por Área. Se você tiver navegado até a página Compilação do .NET no nível do servidor e definir o idioma padrão como C#, o Gerenciador do IIS adicionará o atributo defaultLanguage à seção de compilação no arquivo web.config raiz, ou seja, %windir%\Windows\\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config:

<compilation defaultLanguage="C#">

A barra de status para ambas as situações lerá: Configuração: 'localhost' applicationHost.config ou web.config raiz

Exemplo: gravação de configuração bloqueada versus desbloqueada

A seção de configuração "defaultDocument" do IIS é desbloqueada por padrão. Se você configurar o documento padrão para o Site Padrão, o Gerenciador do IIS gravará essa configuração em %windir%\inetpub\wwwroot\web.config:

<configuration>
   <system.webServer>
      <defaultDocument>
         <files>
            <clear />
            <add value="default.aspx" />
      </defaultDocument>
   </system.webServer>
</configuration>

A barra de status lerá: Configuração: 'Site Padrão' web.config

A seção de configuração "httpErrors" do IIS é desbloqueada por padrão. Se você personalizar a resposta HTTP 404 para o Site Padrão, o Gerenciador do IIS gravará essa configuração em %windir%\Windows\system32\inetsrv\applicationHost.config:

<location path="Default Web Site" overrideMode="Allow">
  <system.webServer>
     <httpErrors>
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" path="/err/404.aspx" responseMode="Redirect" />
     </httpErrors>
  </system.webServer>
</location>

A barra de status lerá: 'localhost' applicationHost.config or root web.config, <location path="Default Web Site">

A comunicação remota do Gerenciador do IIS para o IIS 6.0 e versões anteriores do IIS era por meio do MMC e sempre estava habilitada. Com o IIS 7.0 e versões superiores, a comunicação remota do Gerenciador do IIS deve ser explicitamente habilitada. Todo o gerenciamento remoto é feito por HTTPS e é manipulado por um componente do IIS chamado WMSVC (Serviço de Gerenciamento da Web). Se você quiser habilitar o gerenciamento remoto do IIS 7.0 e versões posteriores por meio do Gerenciador do IIS, leia Como Habilitar a Comunicação Remota do Gerenciador do IIS.

WMSVC (Serviço de Gerenciamento da Web)

O WMSVC (Serviço de Gerenciamento da Web) é um servidor Web autônomo (HWC (núcleo da Web hospedável)) hospedado em um serviço NT. Depois que o WMSVC é instalado e iniciado, ele escuta na porta 8172 em todos os endereços IP não atribuídos. Ele espera receber apenas 4 tipos de solicitações, e cada uma é atendida por seu próprio manipulador:

  • Solicitações de logon para login.axd
  • Solicitações de download de código para download.axd
  • Gerenciamento de solicitações de serviço para service.axd
  • Solicitações de ping para ping.axd

Solicitações de logon

O Gerenciador do IIS envia uma solicitação de logon por transmissão para o WMSVC para iniciar uma conexão. A autenticação é NTLM ou básica, dependendo do que o usuário selecionou quando foi solicitado a fornecer credenciais na caixa de diálogo de conexão.

Captura de tela da caixa de diálogo de login mostrando as seções N, T, L, M e Básico.

Figura 9: Especificando Credenciais

Solicitações de download de código

Se o logon for bem-sucedido, o WMSVC retornará uma lista de módulos de interface do usuário para a conexão. Por exemplo, cada página do Gerenciador do IIS, como "Páginas de Erro Personalizadas", corresponde a um módulo. Se houver um módulo que o Gerenciador do IIS não tenha, ele solicitará o download dos binários do módulo (por exemplo, isso aconteceria se um administrador de servidor instalasse um novo produto RSA Security em seu servidor de produção, mas não instalasse o produto em seu computador desktop que ele usa para se conectar ao servidor).

Solicitações do Serviço de Gerenciamento

Depois que a conexão é estabelecida, o usuário final interage com o Gerenciador do IIS causando solicitações de serviço de gerenciamento. O serviço de gerenciamento solicita serviços de módulo direto no WMSVC para configuração de leitura/gravação, estado de tempo de execução e provedores no servidor.

Solicitações de ping

As solicitações de ping são feitas de dentro do serviço WMSVC para o servidor Web (HWC) que ele hospeda. As solicitações de ping são um mecanismo simples para garantir que o núcleo da Web hospedável continue responsivo.

Configuração de serviço
WMSVC tem um conjunto muito pequeno de configuração editável armazenado no registro. Cada vez que o serviço é iniciado, os arquivos de configuração da Web são regenerados no %windir%\ServiceProfiles\LocalService\AppData\Local\Temp\WMSvc<GUID>\. Os arquivos de configuração da Web não podem ser editados, ainda que por administradores.

Captura de tela mostrando arquivos de configuração da web.

Figura 10: Alterando a Configuração no Registro

Segurança

A comunicação remota do Gerenciador do IIS e do WMSVC (Serviço de Gerenciamento da Web) passou por uma série de revisões para garantir que a funcionalidade seja simples e segura. Estas são algumas das medidas de segurança tomadas:

  • Requer SSL (HTTPS) para todas as conexões para proteger os dados passados entre o cliente remoto do Gerenciador do IIS e o WMSVC
  • Funciona como Serviço Local com um conjunto de permissões reduzido

Configuração de Hostable Web Core (HWC) bloqueada, incluindo um conjunto mínimo de módulos necessários e regras de filtragem de solicitações cuidadosamente criadas.