Ferramenta de Implantação da Web da Microsoft v3: Leiame
por Harsh Mittal
Visão geral
A Implantação da Web é uma ferramenta para simplificar a migração, o gerenciamento e a implantação de aplicativos Web, sites e servidores. Ele pode ser usado para empacotar um site, incluindo automaticamente conteúdo, configurações, certificados e bancos de dados. Ele pode ser usado para sincronizar entre o IIS 6.0, IIS 7.x e IIS8.0 ou para migrar do IIS 6.0, IIS7.x para o IIS 7.x e superior. Os pacotes criados podem ser usados para controle de versão, backup ou implantação.
Recursos
A Implantação da Web inclui estes recursos principais:
Empacotar sites e aplicativos: os desenvolvedores ou administradores podem empacotar a configuração e o conteúdo de aplicativos Web instalados, incluindo bancos de dados SQL, e usar os pacotes para armazenamento ou reimplantação. Esses pacotes podem ser implantados em um servidor remoto usando a interface do Gerenciador do IIS sem exigir privilégios administrativos.
Delegar tarefas de implantação a não administradores. Os administradores de servidor podem optar por delegar tarefas de implantação a usuários que não são administradores. Por exemplo, em ambientes corporativos e de hospedagem compartilhada, a implantação de conteúdo e a marcação de uma pasta como um aplicativo podem ser delegadas. Tarefas mais avançadas adequadas a um ambiente dedicado, como permitir que um certificado, site ou assembly GAC seja implantado, também podem ser habilitadas.
Simplificar a implantação para administradores. Os administradores de servidor acharão a delegação útil, já que a implantação de um aplicativo Web, incluindo um assembly GAC, certificado e pool de aplicativos pode ser demorada, mesmo com todas as permissões necessárias.
Migração do IIS 6.0 e IIS7: a operação de migração fornece aos administradores uma maneira de migrar sites ou servidores inteiros do IIS 6.0 para o IIS 7 e superior, IIS7 para IIS8, incluindo suas configurações e conteúdo. Uma migração é essencialmente uma forma de sincronização, filtrada por regras de migração.
Sincronização do IIS 6.0/IIS 7/IIS8.0 A operação de sincronização fornece aos administradores uma maneira de sincronizar rapidamente um site ou servidor e implantar alterações em sites e servidores existentes. A sincronização permite sincronizar uma origem com um destino. Por exemplo, você pode sincronizar dois caminhos de diretório ou dois servidores Web. A sincronização pode ser realizada com objetos locais ou remotos.
Instantâneo no IIS 7.0 e superior A funcionalidade de instantâneo ou arquivo permite que administradores ou desenvolvedores retirem rapidamente um arquivo de seu site ou servidor para fins de reversão, restauração ou backup. O recurso de instantâneo automático também permite que os administradores de sites façam algumas das tarefas acima em autoatendimento.
Análise de dependências no IIS 6.0 e superior A operação de análise permite que os administradores verifiquem quais componentes estão instalados no servidor de origem. Dessa forma, eles podem determinar se há recursos de que eles precisarão no IIS 7.0 ou que exigem uma instalação mais avançada do que simplesmente copiar arquivos.
Solução de problemas e validação. Para validar uma operação, o parâmetro -whatif permite que os administradores vejam quais ações aconteceriam se executassem uma operação. Isso é especialmente útil para executar sincronização ou migração quando eles desejam validar quais alterações serão feitas antes de executá-las. No caso da solução de problemas, o parâmetro -verbose permite que os administradores obtenham detalhes ricos sobre quais operações estão sendo executadas e, em caso de falha, a capacidade de diagnosticar o problema.
Sincronização diferencial. A ferramenta só sincronizará o que mudou entre a origem e o destino.
Script fácil por meio do PowerShell: as tarefas comuns de Implantação da Web podem ser automatizadas usando cmdlets do PowerShell.
Notas de instalação
Requisitos
Os seguintes pré-requisitos devem ser atendidos para instalar a ferramenta:
· Você precisa ter o .NET 2.0 SP1 ou superior instalado.
Baixar e instalar
Há dois pacotes para download separados para a ferramenta; você precisará baixar o pacote apropriado. Você pode baixar as versões (x86) ou (x64).
Problemas importantes corrigidos nesta versão:
Alteração: em versões anteriores da Implantação da Web, o serviço tempAgent sempre era executado na porta 80. Na Implantação da Web v3 RC, essa porta pode ser alterada especificando a nova porta no argumento computername usando o formato computername=serverName:####, tempagent=true (onde #### é o número da porta a ser usado)
Alteração: corrigido um problema com a Implantação da Web em que as contagens de alterações não eram precisas para operações -whatif ao usar a opção -useCheckSum.
Alteração: A Implantação da Web V3 desativa automaticamente as configurações de proxy. Isso era anteriormente um problema para alguns clientes, que eram obrigados a abrir o Internet Explorer e desabilitar as configurações de proxy antes de iniciar uma sincronização.
Alteração: adicionado suporte para associações no estilo IPv6 na lógica de sincronização de certificados. As versões anteriores não conseguiam sincronizar as associações IPv6 corretamente.
Alteração: ao sincronizar uma chave do Registro filho com um servidor em que a chave do Registro pai não existe, as chaves do Registro pai até a chave filho agora serão criadas (sem valores) em vez de a sincronização falhar. Por exemplo, se for sincronizar a chave do Registro HKEY_LOCAL_MACHINE\SOFTWARE\MySoft\TestWeb1 e a chave MySoft não existir na máquina de destino, a chave MySoft será criada na máquina de destino, permitindo que a sincronização seja bem-sucedida.
Alteração: em alguns casos, a publicação da Implantação da Web removia as permissões herdadas na pasta raiz do site. A Implantação da Web V3 corrige esse problema.
Problemas conhecidos
Problema: a atualização da Implantação da Web v3 interrompeu o funcionamento das sincronizações do SQLite que estavam funcionando usando a Implantação da Web v2
Os arquivos de configuração padrão executáveis da Implantação da Web v3 (msdeploy.exe.config e msdepsvc.exe.config) foram atualizados do .Net 2.0 para o .Net 4.0, o que resulta nessa interrupção.
Solução alternativa:
- O SQLite tem uma versão compatível com .Net 4. A cópia do sqlite3.exe desta versão no diretório "%ProgramFiles%\IIS\Microsoft Web Deploy V3" resolverá o problema.
- Altere a versão .Net padrão do msdeploy.exe.config na Implantação da Web V3 para .Net 2.0, conforme mostrado abaixo
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
Problema: o serviço Agente de Implantação da Web não funciona com contas de usuários locais que não são a conta de usuário Administrador, mas são membros do grupo Administradores. O erro ERROR_USER_NOT_ADMIN retorna.
O Serviço do Agente de Implantação da Web aceita credenciais de conta de administrador interno ou administrador de domínio, qualquer outrs credencial de administrador não funcionará e causará esse erro.
Solução alternativa:
Use a conta de administrador interna ou a conta de usuário de domínio (parte do grupo de administradores na máquina local). O Serviço de Agente Remoto aceita credenciais internas de administrador ou administrador de domínio. Se você tiver uma configuração que não seja de domínio e quiser usar outra conta que seja de administrador interno, faça o seguinte:
- Crie um grupo de usuários separado MSDepSvcUsers no computador remoto.
- Crie uma conta local A em ambos os computadores, local e remoto.
- Adicione A a MSDepSvcUsers no computador remoto.
- Use a conta A para publicar: isso permitirá que você publique sem precisar usar a conta de administrador interna.
Problema: algumas regras de delegação do Serviço de Gerenciamento não funcionam depois que a Implantação da Web é atualizada para a Implantação da Web 3.0
Se um servidor IIS 7+ estiver usando a configuração compartilhada, determinadas regras de delegação com a identidade runAs definida como SpecificUser deixarão de funcionar. Isso ocorre porque o instalador da Implantação da Web e o script .\AddDelegationRules.ps1 criam contas de usuário do computador local e as definem como a identidade runAs em determinadas regras de delegação. Essas contas de usuário não serão reconhecidas em outras máquinas e, portanto, as regras não funcionarão na configuração compartilhada.
Soluções alternativas:
· Se as regras de delegação já tiverem sido substituídas, recrie as regras afetadas manualmente.
Problema: não é possível publicar no site criado com o script do PowerShell SetupSiteForPublish.ps1 ou configurado para publicação pela Implantação da Web por meio de "Configurar para publicação de implantação da Web..." como Interface de Usuário
O script de criação de site, bem como a interface do usuário para configurar a Implantação da Web em um site existente, definem a URL de publicação como https://myserver:8172/msdeploy.axd
. Esse computername geralmente pode ser acessado dentro de uma rede. No entanto, muitas vezes ele não está acessível de fora da rede, e por isso deve ser substituído por um nome DNS público.
Soluções alternativas:
- Do script: O script não avisa sobre esse erro. Substitua a URL pela correta (conforme abaixo) no arquivo de configurações gerado.
- Da interface do usuário: insira o nome DNS público no campo "Especificar a URL para a conexão do servidor de publicação", por exemplo, em vez de
https://myserver:8172/msdeploy.axd
, digitehttps://some.publicDnsName.com:8172/msdeploy.axd
.
Problema: o pacote criado com a Implantação da Web V3 não funciona com a Implantação da Web V2. Isso resulta em System.NullReferenceException.
Soluções alternativas:
- Atualize o computador de destino para a Implantação da Web v3
- Use a Implantação da Web V2 para criar o pacote.
Problema: a interface do usuário da implantação da Web no Gerenciador do IIS gera o erro "Não é possível converter objeto do tipo"
Esse erro pode ocorrer se o computador de destino tiver a Implantação da Web v1.1 instalada e o computador de origem tiver a v2 instalada. Esta é uma incompatibilidade entre versões.
Soluções alternativas:
- Atualizar o computador de origem para a Implantação da Web v2
- Desinstalar todas as versões da Implantação da Web no computador de origem
Problema: se você estiver sincronizando um computador com IIS 6.0 com muitos sites (fazendo com que a metabase tenha mais de 500 MB), a ferramenta pode travar e parar de responder.
Solução alternativa:
Crie uma lista dos sites e sincronize cada site individualmente.
Problema: se você estiver sincronizando de um computador para um computador remoto em que o conteúdo ou a configuração compartilhada estejam em um terceiro computador separada (ou seja, UNC), o agente remoto não poderá se autenticar corretamente.
Solução alternativa:
Sincronize manualmente ou use o Manipulador da Implantação da Web.
Problema: se você alterar as definições de configuração compartilhada (por exemplo, habilitar ou desabilitar a configuração compartilhada), será necessário reiniciar o agente remoto posteriormente.
Solução alternativa:
Reinicie o agente depois de fazer uma alteração na configuração compartilhada.
Problema: se você estiver sincronizando um site em que o caminho é %systemdrive%\wwwroot
para um site de destino com unidade do sistema diferente (C: em vez de D:), o caminho do site será expandido no destino. Isso significa que se você tiver meios de configuração compartilhados com diferentes unidades do sistema e confiar no %systemdrive%
para garantir que o conteúdo funcione, você pode impedir o funcionamento do site em uma máquina.
Solução alternativa:
Adicione uma regra de substituição para alterar o caminho durante a sincronização.
Problema: se você tentar empacotar para um arquivo de pacote existente, pode não funcionar corretamente.
Solução alternativa:
Use um novo nome ou exclua o arquivo de pacote antigo antes de criar um novo pacote.
Problema: a Ferramenta de Implantação da Web da Microsoft só move os arquivos físicos para mapas de script e itens referenciados na Lista de Restrição de Extensão do Serviço Web se os arquivos estiverem localizados nos diretórios de conteúdo de um site. Isso ocorre porque muitos ISAPIs podem não migrar corretamente, como:
- ASP.NET (requer instalação).
- WebDAV (não está incluído no Windows Server 2008 por padrão e requer instalação adicional).
- Extensões do FrontPage Server (não está incluído no Windows Server 2008 por padrão e requer instalação adicional).
Solução alternativa:
Inclua manualmente todos os mapas de script ou arquivos que não exigem instalação em um arquivo de manifesto. Consulte a Ajuda para obter mais informações sobre como criar arquivos de manifesto.
Problema: os arquivos de confiança personalizados referenciados nas configurações de política Web.config e CAS (Segurança de Acesso ao Código) de nível raiz não serão movidos.
Solução alternativa:
Especifique manualmente o arquivo de confiança personalizado e o arquivo de política CAS, security.config, em um arquivo de manifesto. Consulte o arquivo de Ajuda para obter mais informações sobre como criar arquivos de manifesto.
Problema: se você mover um site para um servidor que tenha um nível de confiança diferente, não receberá um aviso.
Solução alternativa:
Certifique-se de que o nível de confiança esteja definido corretamente na máquina de destino ao fazer uma sincronização ou migração no nível do site.
Problema: se você tiver um arquivo de manifesto personalizado que está apontando para uma fonte inválida, pode não receber um erro.
Solução alternativa:
Se você não estiver vendo a saída esperada ao usar um arquivo de manifesto, tente com cada item individualmente para ver se eles estão digitados incorretamente ou inválidos.
Problema: o FTP e o SMTP não estão incluídos nas definições padrão para webserver60.
Solução alternativa:
Se você precisar sincronizar esses locais, sincronize-os manualmente usando o provedor de metachave - ou seja, metakey=lm/msftpsvc.
Problema: as propriedades herdadas não são migradas com uma migração de site do IIS 6.0. Um exemplo comum é a autenticação definida no nível do servidor com todos os sites que herdarem essa propriedade. Quando você migra um único site, ele agora herdará as configurações do novo servidor de destino. Se as configurações do servidor de destino não forem as mesmas, seu site poderá ser interrompido. Isso se aplica a todas as propriedades herdadas, incluindo mapas de MIME, mapas de script, etc.
Solução alternativa:
Use o sinalizador metadataGetInherited para copiar as configurações herdadas para o nível do site ao sincronizar ou migrar um site no IIS 6.0. Ou verifique se as configurações do servidor são as mesmas nos servidores de origem e de destino ou, ainda, defina manualmente o site para usar as configurações corretas.
Solucionar problemas de instalação
Se você encontrar algum problema durante a instalação, você pode executar o comando apropriado listado abaixo para sua versão do Windows para criar um arquivo de log que conterá informações sobre o processo de instalação:
msiexec /L msdeployinstall.log /I <path_to_msi>
msiexec /L msdeployinstall.log /I <path_to_msi>
Você pode analisar esse arquivo de log após uma instalação com falha para ajudar a determinar a causa da falha.
Para obter mais informações
Os seguintes recursos adicionais para a Implantação da Web estão disponíveis no IIS.net:
- Instruções passo a passo da Implantação da Web. Descreve como baixar e instalar a Implantação da Web, como usá-la para sincronizar ou migrar operações e muito mais.
- Não deixe também de visitar o Blog da Equipe da Implantação da Web para obter dicas, truques e informações mais recentes sobre a ferramenta.