Compartilhar via


Tutorial: Implantar um aplicativo ASP.NET com o Banco de Dados SQL do Azure no Azure

O Serviço de Aplicativo do Azure fornece um serviço de hospedagem na Web altamente escalonável e com aplicação automática de patches. Este tutorial mostra como implantar um aplicativo ASP.NET controlado por dados no Serviço de Aplicativo e conectá-lo ao Banco de Dados SQL do Azure.

Ao concluir o tutorial, você tem um aplicativo ASP.NET conectado a um banco de dados SQL do Azure em execução no Azure. O exemplo a seguir mostra a interface do aplicativo.

Captura de tela que mostra um aplicativo ASP.NET publicado no Serviço de Aplicativo do Azure.

Neste tutorial, você:

  • Publique um aplicativo Web controlado por dados no Azure.
  • Crie um banco de dados SQL do Azure para armazenar os dados do aplicativo.
  • Conecte o aplicativo ASP.NET ao banco de dados SQL do Azure.
  • Configure uma identidade gerenciada e a autenticação do Microsoft Entra ID para a conexão de banco de dados.
  • Atualize o modelo de dados e reimplante o aplicativo.
  • Transmitir logs de aplicativos do Azure para o Visual Studio.

Pré-requisitos

  • Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
  • Instale o Visual Studio 2022 com as cargas de trabalho de desenvolvimento do ASP.NET e para a Web e desenvolvimento do Azure.
    • Você pode adicionar as cargas de trabalho a uma instalação existente do Visual Studio selecionando Obter Ferramentas e Recursos no menu Ferramentas do Visual Studio.
    • Verifique se você tem as atualizações mais recentes do Visual Studio 2022 selecionando a Ajuda>para verificar se há atualizações e instalando a versão mais recente, se necessário.

Criar e executar o aplicativo

O projeto de exemplo contém um aplicativo CRUD (create-read-update-delete) do MVC ASP.NET básico que usa o Entity Framework Code First.

  1. Baixe o projeto de exemplo e extraia o arquivo dotnet-sqldb-tutorial-master.zip .

  2. Abra o arquivo dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln extraído no Visual Studio.

  3. Pressione F5 para executar o aplicativo e abri-lo no navegador padrão.

    Observação

    Se necessário, instale todos os pacotes NuGet ausentes.

  4. No aplicativo, selecione Criar Novo e crie alguns itens de tarefa.

    Captura de tela que mostra o aplicativo Web ASP.NET.

  5. Teste os links Editar, Detalhes e Excluir.

Publicar o aplicativo no Azure

Para publicar o aplicativo no Azure, é necessário criar e configurar um perfil de publicação que inclua um Serviço de Aplicativo do Azure e um Plano de Serviço de Aplicativo para hospedar o aplicativo. Em seguida, você cria um SQL Server do Azure e um Banco de Dados SQL do Azure para conter os dados do aplicativo e configura um contexto de banco de dados para conectar o aplicativo ao banco de dados.

  1. No Gerenciador de Soluções do Visual Studio, clique com o botão direito do mouse no projeto DotNetAppSqlDb e selecione Publicar.

    Captura de tela que mostra Publicar do Gerenciador de Soluções.

  2. Na tela Publicar , selecione o Azure como destino e selecione Avançar.

  3. Na próxima tela, verifique se o Serviço de Aplicativo do Azure (Windows) está selecionado e selecione Avançar.

Entrar e adicionar um Serviço de Aplicativo do Azure

  1. Na próxima tela Publicar , entre em sua conta da Microsoft e na assinatura que você deseja usar.

  2. Ao lado do Serviço de Aplicativo, selecione Criar novo.

    Captura de tela que mostra a seleção Criar novo para o Serviço de Aplicativo no painel Publicar.

Configurar o Serviço de Aplicativo do Azure

  1. Na tela do Serviço de Aplicativo (Windows), configure o Nome do Serviço de Aplicativo, o Grupo de Recursos e o Plano de Hospedagem.

    Captura de tela que mostra a criação de um plano do Serviço de Aplicativo.

  2. Em Nome, você pode manter o nome do aplicativo Web gerado ou alterá-lo para outro nome com caracteres a-z0-9e -. O nome do aplicativo Web deve ser exclusivo em todos os aplicativos do Azure.

  3. Ao lado do grupo de recursos, selecione Novo e nomeie o grupo de recursos myResourceGroup.

    Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, é possível excluir posteriormente todo o grupo de recursos com uma única etapa simples.

  4. Ao lado do Plano de Hospedagem, selecione Novo.

    Um plano do Serviço de Aplicativo especifica o local, tamanho e recursos do farm de servidores Web que hospeda o aplicativo. É possível economizar dinheiro ao hospedar vários aplicativos configurando os aplicativos Web para compartilhar um plano do Serviço de Aplicativo.

    Os Planos do Serviço de Aplicativo definem:

    • Região (por exemplo: Norte da Europa, Leste dos EUA ou Sudeste Asiático)
    • Tamanho da instância (pequena, média ou grande)
    • Contagem da escala (1 a 20 instâncias)
    • SKU (Gratuito, Compartilhado, Básico, Standard ou Premium)
  5. Conclua a tela Plano de Hospedagem e selecione OK.

    Configuração Valor sugerido Para obter mais informações
    Plano do Serviço de Aplicativo myAppServicePlan Planos do Serviço de Aplicativo
    Localidade Leste dos EUA Regiões do Azure
    Tamanho Gratuito Tipos de preço

    Captura de tela que mostra a criação do Plano de Hospedagem.

  6. Na tela do Serviço de Aplicativo (Windows ), selecione Criar e aguarde até que os recursos do Azure sejam criados.

  7. A tela Publicar mostra os recursos que você configurou. Selecione Concluir e, em seguida, selecione Fechar.

    Captura de tela que mostra os recursos que você criou.

Criar um servidor e um banco de dados

Antes de criar um banco de dados, você precisa de um SQL Server lógico. Um servidor SQL lógico é um constructo lógico que contém um grupo de bancos de dados gerenciados como um grupo.

  1. Na tela Publicar do aplicativo DotNetAppSqlDb, na seção Dependências de serviço, selecione as reticências ... ao lado do Banco de Dados do SQL Server e selecione Conectar.

    Observação

    Configure o Banco de Dados SQL na guia Publicar , não na guia Serviços Conectados .

    Captura de tela que mostra a configuração da dependência do Banco de Dados SQL.

  2. Na tela Conectar à dependência , selecione o Banco de Dados SQL do Azure e selecione Avançar.

  3. Na tela Configurar Banco de Dados SQL do Azure, selecioneCriar novo.

  4. Na tela Azure SQL Database, ao lado de Servidor de Banco de Dados, selecione Novo.

  5. Altere o nome do servidor para um valor desejado. O nome do servidor deve ser exclusivo em todos os servidores no SQL do Azure.

  6. Selecione OK.

    Captura de tela que mostra a criação do servidor.

  7. Na tela do Banco de Dados SQL do Azure, mantenha o nome do banco de dados padrão gerado. Selecione Criar e aguarde até que os recursos de banco de dados sejam criados.

    Captura de tela que mostra a configuração do banco de dados.

  8. Quando os recursos do banco de dados forem criados, selecione Avançar.

  9. Na tela Conectar ao Banco de Dados SQL do Azure , selecione Concluir.

    Captura de tela com mensagem sobre configurar a identidade gerenciada para a conexão funcionar.

    Observação

    Se você vir arquivos de segredos do usuário local em vez disso, certifique-se de ter usado a página Publicar, e não a página Serviços Conectados, para configurar o banco de dados SQL.

Sua conexão do Banco de Dados SQL do Azure agora está configurada para usar a Identidade Gerenciada para serviços do Azure, um método seguro de conexão do aplicativo aos recursos do Azure que não usam segredos ou senhas. Agora você precisa definir as permissões apropriadas no usuário do SQL correspondentes a essa identidade gerenciada para que a conexão funcione.

Configurar uma identidade gerenciada

Quando o assistente de criação do Banco de Dados SQL do Azure configurou o SQL Server do Azure com uma identidade gerenciada e autenticação padrão da ID do Entra, ele adicionou sua conta de ID do Entra como administrador do SQL do Azure. Se você estiver conectado à mesma conta no Visual Studio, poderá usar a mesma cadeia de conexão para se conectar ao banco de dados no Visual Studio e no Azure.

  1. No menu Ferramentas, selecione Gerenciador de Pacotes NuGet>Console do Gerenciador de Pacotes.

  2. No Console do Gerenciador de Pacotes, instale os seguintes pacotes:

    Install-Package Microsoft.Data.SqlClient
    Install-Package Microsoft.EntityFramework.SqlServer
    
  3. Em uma linha de comando do PowerShell, execute o comando a seguir para entrar no Banco de Dados SQL, substituindo <server-name> pelo nome do servidor e <entra-id-user> pelo nome de usuário do Microsoft Entra usado para configurar o banco de dados no Visual Studio. Esse usuário do Entra tem acesso de administrador ao servidor de banco de dados por padrão.

    sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30
    

    Siga as solicitações para entrar.

  4. No prompt do SQL, execute os comandos a seguir para conceder as permissões mínimas de que seu aplicativo precisa, substituindo <app-name> pelo nome do aplicativo.

    CREATE USER [<app-name>] FROM EXTERNAL PROVIDER;
    ALTER ROLE db_datareader ADD MEMBER [<app-name>];
    ALTER ROLE db_datawriter ADD MEMBER [<app-name>];
    ALTER ROLE db_ddladmin ADD MEMBER [<app-name>];
    GO
    

Atualizar o contexto do banco de dados

O aplicativo usa um contexto de banco de dados para se conectar ao banco de dados, que é referenciado no arquivo Models/MyDatabaseContext.cs . Nesta seção, você atualizará o código para se referir ao provedor do SQL Server do Entity Framework 6, que depende do provedor de ADO.NET Microsoft.Data.SqlClient moderno.

O provedor Entity Framework 6 substitui o provedor interno System.Data.SqlClient do SQL Server e inclui suporte para métodos de autenticação do Microsoft Entra ID. Para obter mais informações, consulte Microsoft.EntityFramework.SqlServer}.

[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] funciona localmente para usar Microsoft.Data.SqlClient como contexto do banco de dados, mas como System.Data.SqlClient é configurado como padrão como o provedor no Serviço de Aplicativo do Azure, você precisa estender MicrosoftSqlDbConfiguration para redirecionar referências de System.Data.SqlClient para Microsoft.Data.SqlClient em vez disso.

  1. Em web.config, remova a seção entityFramework/providers/provider e a linha: <provider invariantName="System.Data.SqlClient" .../>.

  2. Em Modelos/MyDatabaseContext.cs, adicione a seguinte classe:

        public class AppServiceConfiguration : MicrosoftSqlDbConfiguration
        {
            public AppServiceConfiguration()
            {
                SetProviderFactory("System.Data.SqlClient", Microsoft.Data.SqlClient.SqlClientFactory.Instance);
                SetProviderServices("System.Data.SqlClient", MicrosoftSqlProviderServices.Instance);
                SetExecutionStrategy("System.Data.SqlClient", () => new MicrosoftSqlAzureExecutionStrategy());
            }
        }
    
  3. Adicione o seguinte atributo à declaração de MyDatabaseContext classe:

    [DbConfigurationType(typeof(AppServiceConfiguration))]
    

Implantar o aplicativo ASP.NET

  1. Na parte superior da guia Publicar , selecione Publicar. Seu aplicativo ASP.NET é implantado no Azure e seu navegador padrão é iniciado na URL do aplicativo implantado.

  2. Para testar o aplicativo, adicione alguns to-do itens.

    Captura de tela que mostra o aplicativo ASP.NET publicado no Serviço de Aplicativo do Azure.

Parabéns! Seu aplicativo ASP.NET controlado por dados está em execução em tempo real no Serviço de Aplicativo do Azure.

Usar o Pesquisador de Objetos do SQL Server

Você pode usar o Pesquisador de Objetos do SQL Server do Visual Studio para explorar e gerenciar facilmente o banco de dados SQL do Azure. No Pesquisador de Objetos do SQL Server, você pode executar operações de banco de dados mais comuns, como executar consultas ou criar tabelas, exibições e procedimentos armazenados.

Permitir conexão do cliente a partir de seu computador

Por padrão, o servidor do Azure permite conexões com seus bancos de dados somente de serviços do Azure, como seu aplicativo do Azure. O novo banco de dados abriu o seu firewall para o aplicativo do Serviço de Aplicativo criado por você.

Para acessar o banco de dados do computador local, como no Visual Studio, o servidor do Azure deve abrir o firewall para permitir o acesso ao endereço IP público do computador.

Se solicitado a adicionar acesso ao seu cliente local, selecione a opção para permitir o endereço IP público do computador. Essa opção cria uma regra de firewall para permitir o endereço IP público do computador local. A caixa de diálogo já está preenchida com o endereço IP atual do computador.

Se você não receber um prompt para adicionar acesso ao computador local, acesse o banco de dados SQL do Azure no portal do Azure e selecione Definir firewall do servidor na barra de menus superior. Na página Rede , em regras de firewall, selecione a opção para Adicionar o endereço IPv4 do cliente.

Observação

Se o seu provedor de serviços de Internet alterar seu endereço IP público, você precisará reconfigurar o firewall para acessar o banco de dados do Azure novamente.

Conectar-se ao banco de dados SQL do Azure localmente

  1. No menu Visualizar, selecione Pesquisador de objetos do SQL Server.

  2. Na parte superior da janela do Pesquisador de Objetos do SQL Server , selecione o ícone para adicionar o SQL Server.

  3. Na tela Conectar, a sua conexão aparece no nó do Azure. Preencha as informações para o Nome do Servidor, o Nome de Usuário, a Senha e o Nome do Banco de Dados e selecione Conectar.

    Captura de tela que mostra a configuração da conexão de banco de dados do Visual Studio.

  4. Depois que o Visual Studio terminar de configurar a conexão para sua instância do Banco de Dados SQL, seu banco de dados aparecerá no Pesquisador de Objetos do SQL Server. Expanda <seu nome de conexão>>Bancos de Dados><seu nome de banco de dados>> para ver os dados.

  5. Expanda Tabelas, clique com o botão direito do mouse na ToDoes tabela e selecione Exibir Dados para interagir com os dados do banco de dados.

    Captura de tela que mostra a exploração de objetos do Banco de Dados SQL.

Atualizar o aplicativo com as migrações do Code First

Você pode usar ferramentas familiares no Visual Studio para atualizar seu banco de dados e aplicativo no Azure. Nesta etapa, você usa o Code First Migrations no Entity Framework para alterar seu esquema de banco de dados e publicar a alteração no Azure.

Para obter mais informações sobre como usar as Migrações do Entity Framework Code First, consulte Introdução ao Entity Framework 6 Code First usando MVC 5.

Atualizar seu modelo de dados

Abra Models\Todo.cs no editor de códigos. Adicione a seguinte propriedade à classe ToDo:

public bool Done { get; set; }

Executar Migrações do Code First localmente

Execute alguns comandos para fazer as atualizações para seu banco de dados local.

  1. No menu Ferramentas, selecione Gerenciador de Pacotes NuGet>Console do Gerenciador de Pacotes.

  2. Na janela do Console do Gerenciador de Pacotes, habilite as Migrações do Code First:

    Enable-Migrations
    
  3. Adicione uma migração:

    Add-Migration AddProperty
    
  4. Atualize o banco de dados local:

    Update-Database
    
  5. Pressione Ctrl+F5 para executar o aplicativo. Teste os links Editar, Detalhes e Criar Novos .

Se o aplicativo for carregado sem erros, as Migrações do Code First foram bem-sucedidas. No entanto, a sua página ainda tem a mesma aparência porque a lógica do aplicativo ainda não está usando essa nova propriedade.

Usar a nova propriedade

Faça algumas alterações no código para ver a Done propriedade em ação. Para este tutorial, altere apenas as visões Index e Create para usar a nova propriedade.

  1. Abra Controllers\TodosController.cs e, no método na linha 52, adicione Create() à lista de propriedades do atributo Done. A Create() assinatura do método deve ser semelhante ao seguinte código:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  2. Abra Views\Todos\Create.cshtml e, no código Razor, observe o <div class="form-group"> elemento que usa model.Description e o <div class="form-group"> elemento que usa model.CreatedDate.

    Depois desses dois elementos, adicione o seguinte <div class="form-group"> elemento que usa model.Done:

    <div class="form-group">
        @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            <div class="checkbox">
                @Html.EditorFor(model => model.Done)
                @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" })
            </div>
        </div>
    </div>
    
  3. Abra Views\Todos\Index.cshtml e, logo acima do elemento vazio <th></th> , adicione o seguinte código Razor:

    <th>
        @Html.DisplayNameFor(model => model.Done)
    </th>
    
  4. Acima do <td> elemento que contém os Html.ActionLink() métodos auxiliares, adicione outro <td> elemento com o seguinte código Razor:

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    
  5. Salve todos os arquivos e pressione Ctrl+F5 para executar o aplicativo.

  6. No aplicativo, adicione um item de tarefa e selecione Concluído. O item deve aparecer em sua home page como um item concluído. O modo de exibição Editar não mostra o campo Concluído , pois você não alterou o modo de exibição Editar .

Habilitar Migrações do Code First no Azure

Agora que a alteração de código funciona, incluindo a migração de banco de dados, você pode publicá-la em seu aplicativo do Azure e atualizar seu banco de dados SQL do Azure com migrações do Code First também.

  1. No Gerenciador de Soluções do Visual Studio, clique com o botão direito do mouse em seu projeto e selecione Publicar.

  2. Selecione Mais ações>Editar para abrir as configurações de publicação.

    Captura de tela que mostra a abertura das configurações de publicação.

  3. Na lista suspensa MyDatabaseContext, selecione a conexão para seu banco de dados SQL do Azure.

  4. Selecione Executar as Migrações do Code First (executa na inicialização do aplicativo) e, em seguida, selecione Salvar.

    Captura de tela que mostra Habilitar As Primeiras Migrações de Código no aplicativo do Azure.

Publicar suas alterações

Agora que você habilitou as Migrações do Code First no aplicativo do Azure, publique as alterações de código.

  1. Na página Publicar, selecione Publicar.

  2. No aplicativo web publicado, tente adicionar mais itens de tarefas novamente e selecionar Concluído, e eles devem aparecer na sua página inicial como itens concluídos.

    Observe que todos os itens de tarefas existentes ainda são exibidos. Quando você republica seu aplicativo ASP.NET, os dados existentes no banco de dados SQL do Azure não são perdidos. Além disso, o Code First Migrations altera apenas o esquema de dados e deixa seus dados intactos.

    Captura de tela que mostra o Aplicativo Azure após a Migração do Code First.

Transmitir logs de aplicativos

Transmita mensagens de rastreamento diretamente do aplicativo do Azure para o Visual Studio.

Abra Controladores\TodosController.cs e observe que cada ação começa com um Trace.WriteLine() método. Esse código mostra como adicionar mensagens de rastreamento ao seu aplicativo do Azure.

Habilitar streaming de log

  1. Na página Publicar do Visual Studio, role para baixo até a seção Hospedagem .

  2. Selecione as reticências ... no canto superior direito e selecione Exibir logs de streaming.

    Captura de tela que mostra Habilitar transmissão de log.

    Os logs agora são transmitidos na janela Saída.

    Captura de tela que mostra o streaming de log na janela Saída.

    Você ainda não vê nenhuma mensagem de rastreamento, pois quando você seleciona pela primeira vez exibir logs de streaming, seu aplicativo do Azure define o nível de rastreamento como Error, que registra apenas eventos de erro usando o Trace.TraceError() método.

Alterar níveis de rastreamento

  1. Para alterar os níveis de rastreamento para gerar outras mensagens de rastreamento, na seção Hospedagem da página Publicar , selecione ... no canto superior direito e, em seguida, selecione Abrir no portal do Azure.

  2. Na página do portal do Azure para seu aplicativo, selecione logs do Serviço de Aplicativo em Monitoramento no menu à esquerda.

  3. Em Application Logging (Sistema de Arquivos),selecione Detalhado em Nível e, em seguida, selecione Salvar.

    Dica

    Você pode testar diferentes níveis de rastreamento para ver quais tipos de mensagens são exibidos para cada nível. Por exemplo, o nível Informações inclui todos os logs criados por Trace.TraceInformation(), Trace.TraceWarning() e Trace.TraceError(), mas não os logs criados por Trace.WriteLine().

  4. No navegador, acesse o aplicativo de lista de tarefas do Azure novamente e navegue pelo aplicativo. As mensagens de rastreamento, como os exemplos a seguir, agora são transmitidas para a janela Saída no Visual Studio.

    Application:2025-05-12T23:41:11  PID[17108] Verbose     GET /Todos/Index
    Application:2025-05-12T23:42:04  PID[17108] Verbose     GET /Todos/Index
    Application:2025-05-12T23:42:06  PID[17108] Verbose     POST /Todos/Create
    Application:2025-05-12T23:42:07  PID[17108] Verbose     GET /Todos/Index
    

Parar o streaming de log

Para interromper o serviço de streaming de log, selecione o ícone Parar monitoramento na janela Saída .

Captura de tela mostrando a parada do streaming de log.

Limpar os recursos

Nas etapas anteriores, você criou os recursos do Azure em um grupo de recursos. Se você não espera precisar desses recursos no futuro, poderá excluí-los ao excluir o grupo de recursos.

  1. Na página Visão geral do seu aplicativo Web no portal do Azure, selecione o link myResourceGroup em Grupo de recursos.
  2. Na página do grupo de recursos, certifique-se de que os recursos listados são aqueles que deseja excluir.
  3. Selecione Excluir o grupo de recursos, digite myResourceGroup na caixa de texto e, a seguir, selecione Excluir.
  4. Confirme novamente selecionando Excluir.

Vá para o próximo tutorial para saber como usar a identidade gerenciada para melhorar a segurança de conexão do Banco de Dados SQL do Azure.