Obter configurações de publicação do ISS e importar para o Visual Studio

É possível usar a ferramenta Publicar para importar configurações de publicação e, em seguida, implantar seu aplicativo. Neste artigo, usamos as configurações de publicação para o ISS.

Essas etapas se aplicam a aplicativos Web ASP.NET e ASP.NET Core.

Observação

Um arquivo de configurações de publicação (*.publishsettings) é diferente de um perfil de publicação (*.pubxml). Um arquivo de configurações de publicação é criado no ISS e, em seguida, pode ser importado para o Visual Studio. O Visual Studio cria o perfil de publicação.

Pré-requisitos

  • O Visual Studio instalado com a carga de trabalho ASP.NET e de desenvolvimento Web. Se você já instalou o Visual Studio:

    • Instale as atualizações mais recentes no Visual Studio selecionando Ajuda>Verificar Atualizações.
    • Adicione a carga de trabalho selecionando Ferramentas>Obter Ferramentas e Recursos.
  • No servidor, você precisa estar executando o Windows Server 2012 ou versões posteriores e ter a função de servidor Web do IIS configurada corretamente (necessário para gerar o arquivo de configurações de publicação (*.publishsettings)). O ASP.NET 4.5 ou o ASP.NET Core também precisam ser instalados no servidor. As etapas neste tutorial foram testadas no Windows Server 2022.

    Observação

    O IIS no Windows não dá suporte à geração das configurações de publicação. No entanto, você ainda pode publicar no IIS usando a ferramenta Publicar no Visual Studio.

Instalar e configurar a Implantação da Web no Windows Server

A Implantação da Web fornece recursos adicionais de configuração que permitem a criação do arquivo de configurações de publicação por meio da interface do usuário.

Observação

O Web Platform Installer não é mais fabricado desde 01/07/22. Para obter mais informações, consulte Web Platform Installer – Fim do suporte e encerramento do produto/feed de aplicativo. É possível instalar diretamente a Implantação da Web 4.0 para criar o arquivo de configurações de publicação.

  1. Se você ainda não instalou as Ferramentas e Scripts de Gerenciamento do IIS, instale-as agora.

    Acesse Selecionar funções de servidor>Servidor Web (IIS)>Ferramentas de Gerenciamento e, em seguida, selecione a função Scripts de gerenciamento e ferramentas do IIS, clique em Avançar e, em seguida, instale a função.

    Install IIS Management Scripts and Tools

    Os scripts e as ferramentas são necessários para permitir a geração do arquivo de configurações da publicação.

    Você também deve instalar o Serviço de Gerenciamento e o Console de Gerenciamento do IIS (talvez já estejam instalados).

  2. No Windows Server, baixe a Implantação da Web 4.0.

  3. Execute o programa de instalação da Implantação da Web e selecione instalação Completa em vez de uma instalação normal.

    Com uma instalação completa, é possível obter os componentes necessários para gerar um arquivo de configurações de publicação. (Se selecionar Personalizado, é possível ver a lista de componentes, conforme mostrado na ilustração a seguir.)

    Screenshot showing Web Deploy 4.0 components

  4. (Opcional) Verifique se a Implantação da Web está sendo executada corretamente abrindo Painel de Controle > Sistema e Segurança > Ferramentas Administrativas > Serviços e verifique se:

    • O Microsoft Deployment Agent Service está em execução (o nome do serviço é diferente em versões mais antigas).

    • O Serviço de Gerenciamento da Web está em execução.

    Se um dos serviços de agente não estiver em execução, reinicie o Web Deployment Agent Service.

    Se o Web Deployment Agent Service não estiver presente, acesse Painel de Controle > Programas > Desinstalar um programa, localize Implantação da Web da Microsoft <versão>. Escolha Alterar a instalação e confirme se escolhe a opção Será instalado na unidade de disco rígido local para os componentes de Implantação da Web. Conclua as etapas de instalação de alteração.

Criar o arquivo de configurações de publicação no IIS no Windows Server

  1. Feche e reabra o Console de gerenciamento do IIS para mostrar opções de configuração atualizadas na interface do usuário.

  2. No IIS, clique com o botão direito do mouse em Site Padrão, escolha Implantar>Configurar publicação da Implantação da Web.

    Configure Web Deploy configuration

    Se não aparecer o menu Implantar, confira a seção anterior para verificar se a Implantação da Web está em execução.

  3. Na caixa de diálogo Configurar publicação da Implantação da Web, examine as configurações.

  4. Clique em Instalação.

    No painel Resultados, a saída mostra que os direitos de acesso foram concedidos ao usuário especificado e que um arquivo com uma extensão .publishsettings foi gerado na localização mostrada na caixa de diálogo.

    <?xml version="1.0" encoding="utf-8"?>
    <publishData>
      <publishProfile
        publishUrl="https://myhostname:8172/msdeploy.axd"
        msdeploySite="Default Web Site"
        destinationAppUrl="http://myhostname:80/"
        mySQLDBConnectionString=""
        SQLServerDBConnectionString=""
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    Dependendo da configuração do Windows Server e do IIS, você verá diferentes valores no arquivo XML. Veja alguns detalhes sobre os valores que você vê:

    • O arquivo msdeploy.axd referenciado no atributo publishUrl é um arquivo de manipulador HTTP gerado dinamicamente para a Implantação da Web. (Para fins de teste http://myhostname:8172 geralmente também funciona).

    • A porta publishUrl é definida como a porta 8172, que é a padrão para a Implantação da Web.

    • A porta destinationAppUrl é definida como a porta 80, que é a padrão para o IIS.

    • Se, nas etapas posteriores, você não conseguir se conectar ao host remoto pelo Visual Studio usando o nome do host, teste o endereço IP do servidor no lugar do nome de host.

      Observação

      Se você estiver publicando no IIS em execução em uma VM do Azure, será necessário abrir uma porta de entrada para a Implantação da Web e o IIS no grupo de Segurança de Rede. Para obter informações detalhadas, confira Abrir portas para uma máquina virtual.

  5. Copie esse arquivo para o computador em que você está executando o Visual Studio.

Importar as configurações de publicação no Visual Studio e implantar

  1. No computador em que você tem o projeto ASP.NET aberto no Visual Studio, clique com o botão direito do mouse no projeto no Gerenciador de Soluções e escolha Publicar.

    Se você já tiver configurado anteriormente quaisquer perfis de publicação, o painel Publicar será exibido. Clique em Novo ou Criar perfil.

  2. Selecione a opção para importar um perfil.

    Na caixa de diálogo Publicar, clique em Importar perfil.

    Choose Publish

  3. Navegue até a localização do arquivo de configurações de publicação que você criou na seção anterior.

  4. Na caixa de diálogo Importar Arquivo de Configurações de Publicação, navegue até o perfil criado na seção anterior, selecione-o e clique em Abrir.

    Clique em Concluir para salvar o perfil de publicação e, em seguida, clique em Publicar.

    O Visual Studio inicia o processo de implantação e a janela de Saída mostra o andamento e os resultados.

    Se você se deparar com erros de implantação, clique em Mais Ações>Editar para editar as configurações. Modifique as configurações e clique em Validar para testar as novas. Se o nome do host não for encontrado, experimente o endereço IP em vez do nome de host nos campos Servidor e URL de destino.

    Edit settings in the Publish tool

Depois que o aplicativo for implantado com êxito, ele deverá ser iniciado automaticamente.

Problemas comuns

Primeiro, verifique a janela Saída no Visual Studio para obter informações de status e verifique as mensagens de erro. Além disso:

  • Se não for possível se conectar ao host usando o nome do host, tente o endereço IP.
  • Verifique se as portas necessárias estão abertas no servidor remoto.
  • Para o ASP.NET Core, no IIS é necessário certificar-se de que o campo do pool de aplicativos para o DefaultAppPool está definido como Sem código gerenciado.
  • Verifique se a versão do ASP.NET usada em seu aplicativo é a mesma que a versão instalada no servidor. Para o aplicativo, confira e defina a versão na página Propriedades. Para definir o aplicativo com uma versão diferente, essa versão deve estar instalada.
  • Se o aplicativo tentar abrir, mas você receber um aviso de certificado, selecione que o site é confiável. Se você já tiver fechado o aviso, poderá editar o arquivo *.pubxml em seu projeto e adicionar o seguinte elemento: <AllowUntrustedCertificate>true</AllowUntrustedCertificate>. Essa configuração é somente para teste!
  • Se o aplicativo não iniciar no Visual Studio, inicie o aplicativo no IIS para testar se for implantado corretamente.