Migrar e publicar um aplicativo Web em um serviço de nuvem do Azure usando o Visual Studio

Observação

Este artigo se aplica aos Serviços de Nuvem do Azure (clássico), que agora foram preteridos para novos clientes e serão desativados em 31 de agosto de 2024. Os serviços existentes criados com essa tecnologia ainda têm suporte por meio dos Serviços de Nuvem do Azure (suporte estendido). Para novos desenvolvimentos, é recomendável usar um tipo de serviço mais recente projetado para sua finalidade específica, como o Serviço de Aplicativo do Azure, o Azure Functions ou os Aplicativos de Contêiner do Azure. Para obter a lista mais recente de serviços disponíveis, confira Diretório de produtos do Azure.

Para tirar proveito dos serviços de hospedagem e a escalabilidade do Azure, você pode migrar e implantar seu aplicativo Web em um serviço de nuvem do Azure. Somente alteração mínimas são necessárias. Este artigo aborda somente a implantação em serviços de nuvem; para o Serviço de Aplicativo, consulte Implantar um aplicativo Web no Serviço de Aplicativo do Azure.

Importante

Essa migração tem suporte apenas para os projetos específicos do ASP.NET, da WCF e de Fluxo de Trabalho da WCF. Não há suporte para projetos do ASP.NET Core. Consulte Modelos de projeto com suporte.

Pré-requisitos

Migrar um projeto para serviços de nuvem

  1. Clique com o botão direito do mouse no nó da solução e selecione Adicionar > Novo Projeto... e adicione um novo projeto do Serviço de Nuvem do Azure (clássico) à solução existente.

  2. Na caixa de diálogo Novo Serviço de Nuvem do Microsoft Azure (clássico), clique em OK sem adicionar nenhuma função ao projeto.

  3. Clique com o botão direito do mouse no nó de funções no projeto de Serviços de Nuvem recém-adicionado e selecione Adicionar Projeto de Função Web na solução....

  4. Na caixa de diálogo Associar ao Projeto de Função, selecione o projeto que deseja associar como uma função Web.

    Importante

    Se tiver outros assemblies ou arquivos necessários para o aplicativo Web, você precisa definir manualmente as propriedades para esses arquivos. Para obter informações sobre como definir essas propriedades, consulte Incluir arquivos no pacote de serviço.

Erros e avisos

Quaisquer avisos ou erros indicam problemas a serem corrigidos antes de implantar o Azure, como assemblies ausentes.

Se você compilar o aplicativo, executá-lo localmente usando o emulador de computação ou publicá-lo no Azure, poderá ver o erro: "O caminho, o nome do arquivo ou ambos são muito longos". Esse erro indica que o tamanho do nome do projeto do Azure totalmente qualificado excede 146 caracteres. Para corrigir o problema, mova sua solução para uma pasta diferente com um caminho mais curto.

Para obter mais informações sobre como tratar avisos como erros, consulte Configurar um projeto de serviço de nuvem do Azure com o Visual Studio.

Testar a migração localmente

  1. No Gerenciador de Soluções do Visual Studio, clique com o botão direito do mouse no projeto do serviço de nuvem adicionado e selecione Configurar como Projeto de Inicialização.
  2. Selecione Depurar > Iniciar Depuração (F5) para inicializar o ambiente de depuração do Azure. Esse ambiente fornece especificamente emulação de vários serviços do Azure.

Usar um banco de dados SQL do Azure para seu aplicativo

Se tiver uma cadeia de conexão para seu aplicativo Web que usa um banco de dados SQL Server local, você deve migrar seu banco de dados para o Banco de Dados SQL do Azure e atualizar a cadeia de conexão. Para obter orientações com esse processo, consulte os tópicos a seguir:

Publicar o aplicativo em um Serviço de Nuvem do Azure

  1. Crie o serviço de nuvem e as contas de armazenamento necessários em sua assinatura do Azure, conforme descrito em Preparar para publicar ou implantar um aplicativo do Azure a partir do Visual Studio.

  2. No Visual Studio, clique com botão direito no projeto do aplicativo e selecione Publicar no Microsoft Azure... (que é diferente do comando “Publicar...”).

  3. Em Publicar Aplicativo do Azure, entre usando a conta com sua assinatura do Azure e selecione Avançar >.

  4. Na guia Configurações > Configurações Comuns, selecione o serviço de nuvem de destino na lista suspensa Serviço de Nuvem, juntamente com o ambiente e as configurações escolhidas.

  5. Em Configurações > Configurações Avançadas, selecione a conta de armazenamento a ser usada e selecione Avançar >.

  6. Em Diagnósticos, escolha se deseja enviar informações ao Application Insights.

  7. Selecione Avançar > para exibir um resumo e selecione Publicar para iniciar a implantação.

  8. O Visual Studio abre uma janela de log de atividade na qual você pode acompanhar o progresso:

    VST_AzureActivityLog

  9. (Opcional) Para cancelar o processo de implantação, clique com o botão direito do mouse no item de linha no log de atividades e escolha Cancelar e remover. Esse comando interrompe o processo de implantação e exclui o ambiente de implantação do Azure. Observação: para remover este ambiente de implantação depois de ele ter sido implantado, você deve usar o Portal do Azure.

  10. Para acessar seu aplicativo após a implantação, escolha a seta ao lado de sua implantação quando um status de Concluído aparecer no Log de atividades do Azure junto com a URL. Consulte a tabela a seguir para obter detalhes sobre como iniciar um tipo específico de aplicativo Web do Azure.

Usar o emulador de computação e iniciar o aplicativo no Azure

Todos os tipos de aplicativo podem ser iniciados em um navegador conectado ao depurador do Visual Studio selecionando Depurar > Iniciar Depuração (F5). Com um projeto de Aplicativo Web Vazio do ASP.NET, primeiro você deve adicionar uma página .aspx em seu aplicativo e defini-la como a página inicial do seu projeto Web.

A tabela a seguir fornece detalhes sobre como iniciar o aplicativo no Azure:

Tipo de aplicativo Web em execução no Azure
Aplicativo Web do ASP.NET
(incluindo Model-View-Controller (MVC) 2, MVC 3, MVC 4)
Selecione a URL na guia Implantação para o Log de Atividades do Azure.
Aplicativo Web ASP.NET vazio Caso tenha uma página .aspx padrão em seu aplicativo, selecione a URL na guia Implantação para o Log de Atividades do Azure. Para navegar para uma página diferente, insira uma URL do formulário a seguir em um navegador: <deployment_url>/<page_name>.aspx
Aplicativo de serviço WCF
Aplicativo de serviço de fluxo de trabalho WCF
Defina o arquivo .svc como a página inicial do seu projeto de Serviço WCF. Depois navegue até <deployment_url>/<service_file>.svc
Entidades dinâmicas do ASP.NET
Dados Dinâmicos ASP.NET LINQ to SQL
Atualize a cadeia de conexão conforme descrito na próxima seção. Depois navegue até <deployment_url>/<page_name>.aspx. Para LINQ to SQL, você deve usar um banco de dados SQL do Azure.

Atualizar uma cadeia de conexão para Entidades dinâmicas do ASP.NET

  1. Crie um banco de dados SQL do Azure para um aplicativo Web de entidades dinâmicas do ASP.NET, conforme descrito anteriormente em (#use-an-azuresql-database-for-your-application).

  2. Adicione as tabelas e os campos necessários para esse banco de dados por meio do Portal do Azure.

  3. Especifique uma cadeia de conexão no arquivo web.config com o seguinte formato e salve o arquivo:

    <add name="tempdbEntities"
     connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=<server name>\SQLEXPRESS;initial catalog=<database name>;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;"
     providerName="System.Data.EntityClient"/>
    

    Atualize o valor de connectionString com a cadeia de conexão ADO.NET para seu banco de dados do SQL Azure da seguinte maneira:

    <add name="tempdbEntities"
     connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Server=tcp:<SQL Azure server name>.database.windows.net,1433;Database=<database name>;User ID=<user name>;Password=<password>;Trusted_Connection=False;Encrypt=True;multipleactiveresultsets=True;App=EntityFramework&quot;"
     providerName="System.Data.EntityClient"/>
    

Modelos de projeto com suporte

Aplicativos que podem ser migrados e publicados nos serviços de nuvem devem usar um dos modelos da tabela a seguir. Não há suporte para o ASP.NET Core.

Grupo de modelos Modelo do projeto
Web Aplicativo Web do ASP.NET (.NET Framework)
Web Aplicativo Web ASP.NET MVC 2
Web Aplicativo Web ASP.NET MVC 3
Web Aplicativo Web ASP.NET MVC 4
Web Aplicativo (ou Site) Web do ASP.NET vazio
Web Aplicativo Web ASP.NET MVC 2 vazio
Web Aplicativo Web de entidades de dados dinâmicos ASP.NET
Web Aplicativo Web de LINQ to SQL de dados dinâmicos ASP.NET
WCF Aplicativo de serviço WCF
WCF Aplicativo de serviço de fluxo de trabalho WCF
Fluxo de trabalho Aplicativo de serviço de fluxo de trabalho WCF