Configuração de um servidor Web para publicação de Implantação da Web (manipulador de Implantação da Web)
Este tópico descreve como configurar um servidor Web do IIS (Serviços de Informações da Internet) para dar suporte à publicação e implantação na Web usando o Manipulador de Implantação da Web do IIS.
Quando você trabalha com a Implantação da Web 2.0 ou posterior, há três abordagens main que você pode usar para colocar seus aplicativos ou sites em um servidor Web. Você pode:
- Use o Serviço de Agente Remoto de Implantação da Web. Essa abordagem requer menos configuração do servidor Web, mas você precisa fornecer as credenciais de um administrador de servidor local para implantar qualquer coisa no servidor.
- Use o Manipulador de Implantação da Web. Essa abordagem é muito mais complexa e requer mais esforço inicial para configurar o servidor Web. No entanto, ao usar essa abordagem, você pode configurar o IIS para permitir que usuários não administradores executem a implantação. O Manipulador de Implantação da Web só está disponível no IIS versão 7 ou posterior.
- Use a implantação offline. Essa abordagem requer a menor configuração do servidor Web, mas um administrador de servidor deve copiar manualmente o pacote da Web para o servidor e importá-lo por meio do Gerenciador do IIS.
Para obter mais informações sobre os principais recursos, vantagens e desvantagens dessas abordagens, consulte Escolhendo a abordagem certa para a implantação da Web.
Sim, se você quiser permitir que usuários não administradores implantem conteúdo em sites específicos do IIS. Essa abordagem geralmente é desejável nesses tipos de cenários:
- Ambientes de preparo ou de produção, em que é improvável que a pessoa ou a conta de serviço que dispara a implantação remota tenha acesso às credenciais de um administrador do servidor.
- Ambientes hospedados, onde você deseja dar aos usuários remotos a capacidade de atualizar seus sites sem dar a eles controle total dos seus servidores Web (ou acesso aos sites de qualquer outra pessoa).
Em cenários de desenvolvimento ou teste, ou em organizações menores, implantar conteúdo usando credenciais de administrador de servidor geralmente é menos controverso. Nesses cenários, configurar seus servidores Web para dar suporte à implantação usando o Serviço de Agente Remoto de Implantação da Web oferece uma abordagem mais simples.
Visão geral da tarefa
Para configurar o servidor Web para aceitar e implantar pacotes Web de um computador remoto usando a abordagem manipulador de implantação da Web, você precisará:
- Crie ou escolha uma conta de usuário de domínio (o "usuário não administrador") cujas credenciais você usará para executar implantações.
- Instale o IIS 7.5, incluindo o Serviço de Gerenciamento da Web e o módulo Autenticação Básica.
- Instale a Implantação da Web 2.1 ou posterior.
- Configure o Serviço de Gerenciamento da Web para permitir conexões remotas e inicie o serviço.
- Crie um site do IIS para hospedar o conteúdo implantado.
- Conceda permissões de usuário não administrador em seu site no Gerenciador do IIS.
- Verifique se as regras de delegação do Serviço de Gerenciamento da Web permitem que o serviço adicione e altere o conteúdo do site usando sua conta de usuário não administrador.
- Configure todos os firewalls para permitir conexões de entrada na porta 8172.
Para hospedar especificamente a solução de exemplo ContactManager, você também precisará:
- Instale o .NET Framework 4.0.
- Instale ASP.NET MVC 3.
Este tópico mostrará como executar cada um desses procedimentos. As tarefas e instruções passo a passo neste tópico pressupõem que você está começando com uma compilação de servidor limpo executando Windows Server 2016. Antes de continuar, verifique se:
- Windows Server 2016
- O servidor é ingressado no domínio.
- O servidor tem um endereço IP estático.
Observação
Para obter mais informações sobre como ingressar computadores em um domínio, consulte Unindo computadores ao domínio e Fazendo logon. Para obter mais informações sobre como configurar endereços IP estáticos, consulte Configurar um endereço IP estático.
Instalar produtos e componentes
Esta seção orientará você na instalação dos produtos e componentes necessários no servidor Web. Antes de começar, uma boa prática é executar Windows Update para garantir que o servidor esteja totalmente atualizado.
Nesse caso, você precisa instalar estes itens:
- Configuração recomendada do IIS 7. Isso habilita a função servidor Web (IIS) no servidor Web e instala o conjunto de módulos e componentes do IIS necessários para hospedar um aplicativo ASP.NET.
- IIS: Serviço de Gerenciamento. Isso instala o WMSvc (Serviço de Gerenciamento da Web) no IIS. Esse serviço permite o gerenciamento remoto de sites do IIS e expõe o ponto de extremidade do Manipulador de Implantação da Web aos clientes.
- IIS: autenticação básica. Isso instala o módulo autenticação básica do IIS. Isso permite que o WMSvc (Serviço de Gerenciamento da Web) autentique as credenciais fornecidas.
- Ferramenta de Implantação da Web 2.1 ou posterior. Isso instala a Implantação da Web (e seu executável subjacente, MSDeploy.exe) em seu servidor. Como parte desse processo, ele instala o Manipulador de Implantação da Web e o integra ao Serviço de Gerenciamento da Web.
- .NET Framework 4.0. Isso é necessário para executar aplicativos criados nesta versão do .NET Framework.
- ASP.NET MVC 3. Isso instala os assemblies necessários para executar aplicativos MVC 3.
Observação
Este passo a passo descreve o uso do Web Platform Installer para instalar e configurar vários componentes. Embora você não precise usar o Web Platform Installer, ele simplifica o processo de instalação detectando automaticamente dependências e garantindo que você sempre obtenha as versões mais recentes do produto. Para obter mais informações, consulte Microsoft Web Platform Installer.
Para instalar os produtos e componentes necessários
Baixe e instale o Web Platform Installer.
Quando a instalação for concluída, o Web Platform Installer será iniciado automaticamente.
Observação
Agora você pode iniciar o Web Platform Installer a qualquer momento no menu Iniciar . Para fazer isso, no menu Iniciar, clique em Todos os Programas e, em seguida, clique em Microsoft Web Platform Installer.
Na parte superior da janela do Web Platform Installer, clique em Produtos.
No lado esquerdo da janela, no painel de navegação, clique em Estruturas.
Na linha 4 do Microsoft .NET Framework, se o .NET Framework ainda não estiver instalado, clique em Adicionar.
Observação
Talvez você já tenha instalado o .NET Framework 4.0 até Windows Update. Se um produto ou componente já estiver instalado, o Web Platform Installer indicará isso substituindo o botão Adicionar pelo texto Instalado.
Na linha ASP.NET MVC 3 (Visual Studio 2010), clique em Adicionar.
No painel de navegação, clique em Servidor.
Na linha Configuração Recomendada do IIS 7 , clique em Adicionar.
Na linha Ferramenta de Implantação da Web 2.1 , clique em Adicionar.
Na linha IIS: Autenticação Básica , clique em Adicionar.
Na linha IIS: Serviço de Gerenciamento , clique em Adicionar.
Clique em Instalar. O Web Platform Installer mostrará uma lista de produtos, juntamente com as dependências associadas, a serem instalados e solicitará que você aceite os termos de licença.
Examine os termos de licença e, se você consentir com os termos, clique em Aceito.
Quando a instalação for concluída, clique em Concluir e feche a janela Instalador da Plataforma Web .
Se você instalou o .NET Framework 4.0 antes de instalar o IIS, precisará executar o ASP.NET Ferramenta de Registro do IIS (aspnet_regiis.exe) para registrar a versão mais recente do ASP.NET com o IIS. Se você não fizer isso, descobrirá que o IIS fornecerá conteúdo estático (como arquivos HTML) sem problemas, mas retornará o Erro HTTP 404.0 – Não Encontrado quando você tentar navegar para ASP.NET conteúdo. Você pode usar o próximo procedimento para garantir que ASP.NET 4.0 esteja registrado.
Para registrar ASP.NET 4.0 no IIS
Clique em Iniciar e digite Prompt de Comando.
Nos resultados da pesquisa, clique com o botão direito do mouse em Prompt de Comando e clique em Executar como administrador.
Na janela Prompt de Comando, navegue até o diretório %WINDIR%\Microsoft.NET\Framework\v4.0.30319 .
Digite este comando e pressione Enter:
aspnet_regiis -iru
Se você planeja hospedar aplicativos Web de 64 bits a qualquer momento, também deve registrar a versão de 64 bits do ASP.NET com o IIS. Para fazer isso, na janela Prompt de Comando, navegue até o diretório %WINDIR%\Microsoft.NET\Framework64\v4.0.30319 .
Digite este comando e pressione Enter:
aspnet_regiis -iru
Como uma boa prática, use Windows Update novamente neste ponto para baixar e instalar todas as atualizações disponíveis para os novos produtos e componentes que você instalou.
Configurar o Serviço de Gerenciamento Web
Agora que você instalou tudo o que precisa, a próxima etapa é configurar o Serviço de Gerenciamento da Web no IIS. Em um alto nível, você precisará concluir estas tarefas:
- Habilite a autenticação básica no nível do servidor.
- Configure o Serviço de Gerenciamento web para aceitar conexões remotas.
- Inicie o Serviço de Gerenciamento Web.
- Verifique se as regras de delegação do Serviço de Gerenciamento web necessárias estão em vigor.
Para configurar o Serviço de Gerenciamento web
No menu Iniciar, aponte para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
No Gerenciador do IIS, no painel Conexões , clique no nó do servidor (por exemplo, STAGEWEB1).
No painel central, em IIS, clique duas vezes em Autenticação.
Clique com o botão direito do mouse em Autenticação Básica e clique em Habilitar.
No painel Conexões , clique no nó do servidor novamente para retornar às configurações de nível superior.
No painel central, em Gerenciamento, clique duas vezes em Serviço de Gerenciamento.
No painel central, selecione Habilitar conexões remotas.
Observação
Se o Serviço de Gerenciamento Web já estiver em execução, você precisará interrompê-lo primeiro.
No painel Ações , clique em Iniciar para iniciar o Serviço de Gerenciamento da Web.
Se for solicitado que você salve suas configurações, clique em Sim.
Observação
Talvez você também queira configurar o serviço para iniciar automaticamente. Para fazer isso, abra o console de Serviços, clique com o botão direito do mouse em Serviço de Gerenciamento Web e clique em Propriedades. Na lista suspensa Tipo de inicialização, selecione Automático e clique em OK.
No painel Conexões , clique no nó do servidor novamente para retornar às configurações de nível superior.
No painel central, em Gerenciamento, clique duas vezes em Delegação do Serviço de Gerenciamento.
Verifique se o painel central contém um conjunto de regras.
Essas regras permitem que usuários autorizados do Serviço de Gerenciamento da Web usem vários provedores de Implantação da Web. Por exemplo, para implantar aplicativos Web e conteúdo no IIS por meio do Manipulador de Implantação da Web, deve haver uma regra de delegação que permita que todos os usuários autenticados do Serviço de Gerenciamento da Web usem os provedores contentPath e iisApp (a última regra que você pode ver na captura de tela).
Se você instalou produtos e componentes na ordem descrita neste tópico, a versão mais recente da Implantação da Web deverá adicionar automaticamente todas as regras de delegação necessárias ao Serviço de Gerenciamento da Web. Se a página Delegação do Serviço de Gerenciamento não mostrar nenhuma regra, você precisará criá-las por conta própria. Para obter instruções sobre como fazer isso, consulte Configurar o manipulador de implantação da Web.
No painel Conexões , clique no nó do servidor novamente para retornar às configurações de nível superior.
Criar e configurar um site do IIS
Antes de implantar conteúdo da Web em seu servidor, você precisa criar e configurar um site do IIS para hospedar o conteúdo. A Implantação da Web só pode implantar pacotes da Web em um site do IIS existente; ele não pode criar o site para você. Você também precisa fazer uma configuração extra para permitir que sua conta não administrador implante conteúdo remotamente. Em um alto nível, você precisará concluir estas tarefas:
- Crie uma pasta no sistema de arquivos para hospedar seu conteúdo.
- Crie um site do IIS para atender ao conteúdo e associe-o à pasta local.
- Conceda permissões de leitura para a identidade do pool de aplicativos na pasta local.
- Conceda as permissões necessárias do IIS para a conta de domínio que implantará seu aplicativo Web.
Embora não haja nada que impeça você de implantar conteúdo no site padrão no IIS, essa abordagem não é recomendada para nada além de cenários de teste ou demonstração. Para simular um ambiente de produção, você deve criar um novo site do IIS com configurações específicas aos requisitos do aplicativo.
Para criar um site do IIS
No sistema de arquivos local, crie uma pasta para armazenar seu conteúdo (por exemplo, C:\DemoSite).
No menu Iniciar, aponte para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
No Gerenciador do IIS, no painel Conexões , expanda o nó do servidor (por exemplo, STAGEWEB1).
Clique com o botão direito do mouse no nó Sites e clique em Adicionar Site.
Na caixa Nome do site , digite um nome para o site do IIS (por exemplo, DemoSite).
Na caixa Caminho físico , digite (ou navegue até) o caminho para sua pasta local (por exemplo, C:\DemoSite).
Na caixa Porta , digite o número da porta no qual você deseja hospedar o site (por exemplo, 85).
Observação
Os números de porta padrão são 80 para HTTP e 443 para HTTPS. No entanto, se você hospedar este site na porta 80, precisará interromper o site padrão para poder acessar seu site.
Deixe a caixa Nome do host em branco, a menos que você deseje configurar um registro DNS (Sistema de Nomes de Domínio) para o site e clique em OK.
Observação
Em um ambiente de produção, você provavelmente desejará hospedar seu site na porta 80 e configurar um cabeçalho de host, juntamente com registros DNS correspondentes. Para obter mais informações sobre como configurar cabeçalhos de host no IIS 7, consulte Configurar um cabeçalho de host para um site (IIS 7). Para obter mais informações sobre a função de servidor DNS no Windows Server, consulte Visão geral do servidor DNS.
No painel Ações , em Editar Site, clique em Ligações.
Na caixa de diálogo Ligações do Site, clique em Adicionar.
Na caixa de diálogo Adicionar Associação de Site , defina o endereço IP e a Porta para corresponder à configuração do site existente.
Na caixa Nome do host, digite o nome do servidor Web (por exemplo, STAGEWEB1) e clique em OK.
Observação
A primeira associação de site permite que você acesse o site localmente usando o endereço IP e a porta ou
http://localhost:85
. A segunda associação de site permite que você acesse o site de outros computadores no domínio usando o nome do computador (por exemplo, http://stageweb1:85).Na caixa de diálogo Ligações do Site, clique em Fechar.
No painel Conexões, selecione Pools de aplicativos.
No painel Pools de Aplicativos , clique com o botão direito do mouse no nome do pool de aplicativos e clique em Configurações Básicas. Por padrão, o nome do pool de aplicativos corresponderá ao nome do seu site (por exemplo, DemoSite).
Na lista de versões do .NET CLR , selecione .NET CLR v4.0.30319 e clique em OK.
Observação
A solução de exemplo requer .NET Framework 4.0. Isso não é um requisito para a Implantação da Web em geral.
Para que seu site atenda ao conteúdo, a identidade do pool de aplicativos deve ter permissões de leitura na pasta local que armazena o conteúdo. No IIS 7.5, os pools de aplicativos são executados com uma identidade exclusiva do pool de aplicativos por padrão (ao contrário das versões anteriores do IIS, em que os pools de aplicativos normalmente seriam executados usando a conta do Serviço de Rede). A identidade do pool de aplicativos não é uma conta de usuário real e não aparece em nenhuma lista de usuários ou grupos. Em vez disso, ela é criada dinamicamente quando o pool de aplicativos é iniciado. Cada identidade do pool de aplicativos é adicionada ao grupo de segurança IIS_IUSRS local como um item oculto.
Para conceder permissões a uma identidade do pool de aplicativos em um arquivo ou pasta, você tem duas opções:
- Atribua permissões à identidade do pool de aplicativos diretamente, usando o formato IIS AppPool (nome do pool de aplicativos) (por exemplo, IIS AppPool\DemoSite).
- Atribua permissões ao grupo IIS_IUSRS .
A abordagem mais comum é atribuir permissões ao grupo de IIS_IUSRS local, pois essa abordagem permite alterar pools de aplicativos sem reconfigurar as permissões do sistema de arquivos. O próximo procedimento usa essa abordagem baseada em grupo.
Observação
Para obter mais informações sobre identidades do pool de aplicativos no IIS 7.5, consulte Identidades do pool de aplicativos.
Para configurar permissões de pasta para um site do IIS
No Windows Explorer, navegue até o local da pasta local.
Clique com o botão direito do mouse na pasta e, em seguida, clique em Propriedades.
Sobre a guia Security , clique em Edite, em seguida, em Add.
Clique em Locais. Na caixa de diálogo Locais , selecione o servidor local e clique em OK.
Na caixa de diálogo Selecionar Usuários ou Grupos, digiteIIS_IUSRS, clique em Verificar Nomes e clique em OK.
Na caixa de diálogo Permissões para (nome da pasta), observe que o novo grupo recebeu as permissões Ler & executar, Listar conteúdo da pasta e Ler por padrão. Deixe isso inalterado e clique em OK.
Clique em OK para fechar a caixa de diálogo Propriedades (nome da pasta ).
Como tarefa final, você deve conceder as permissões apropriadas ao usuário não administrador cujas credenciais você usará para implantar o conteúdo. Esse usuário requer as permissões para implantar conteúdo remotamente em seu site.
Para configurar permissões de site do IIS para um usuário de domínio não administrador
No Gerenciador do IIS, no painel Conexões , clique com o botão direito do mouse no nó do site (por exemplo, DemoSite), aponte para Implantar e clique em Configurar Publicação de Implantação na Web.
Na caixa de diálogo Configurar Publicação de Implantação da Web , à direita da lista Selecionar um usuário para conceder permissões de publicação , clique no botão de reticências.
Na caixa de diálogo Permitir Usuário , digite o domínio e o nome de usuário da conta que você deseja usar para implantar o conteúdo e clique em OK.
Na caixa de diálogo Configurar Publicação de Implantação da Web , clique em Configurar.
Observação
Essa operação executa duas funções principais em uma etapa. Primeiro, ele concede ao usuário permissão para modificar o site remotamente por meio do Serviço de Gerenciamento da Web, de acordo com as regras de delegação que você examinou na seção anterior. Em segundo lugar, ele concede ao usuário controle total da pasta de origem para o site, o que permite que o usuário adicione, modifique e defina permissões no conteúdo do site.
Na caixa de diálogo Configurar Publicação de Implantação da Web , clique em Fechar.
Configurar exceções de firewall
Por padrão, o Serviço de Gerenciamento da Web do IIS escuta na porta TCP 8172. Se o Firewall do Windows estiver habilitado no servidor Web, você precisará criar uma nova regra de entrada para permitir o tráfego TCP na porta 8172 (todo o tráfego de saída é permitido por padrão no Firewall do Windows). Se você usar um firewall de terceiros, precisará criar regras para permitir o tráfego.
Direção | Da porta | Para Portabilidade | Tipo de Porta |
---|---|---|---|
Entrada | Qualquer | 8172 | TCP |
Saída | 8172 | Qualquer | TCP |
Para obter mais informações sobre como configurar regras no Firewall do Windows, consulte Configurando regras de firewall. Para firewalls de terceiros, consulte a documentação do produto.
Conclusão
Seu servidor Web agora deve estar pronto para aceitar implantações remotas no Manipulador de Implantação da Web por meio do Serviço de Gerenciamento da Web. Antes de tentar implantar um aplicativo Web no servidor, convém marcar estes pontos-chave:
- Você habilitou a autenticação básica no nível do servidor no IIS?
- Você habilitou conexões remotas com o Serviço de Gerenciamento da Web?
- Você iniciou o Serviço de Gerenciamento da Web?
- Há regras de delegação de serviço de gerenciamento em vigor?
- A identidade do pool de aplicativos tem acesso de leitura à pasta de origem do seu site?
- A conta de usuário não administrador tem permissões no nível do site no IIS?
- O firewall permite conexões de entrada com o servidor na porta TCP 8172?
Leitura Adicional
Para obter diretrizes sobre como configurar arquivos de projeto de Microsoft Build Engine personalizados (MSBuild) para implantar pacotes Web no Manipulador de Implantação da Web, consulte Configurando propriedades de implantação para um ambiente de destino.