Partilhar via


Tutorial: Implantar um aplicativo ASP.NET com o banco de dados SQL do Azure no Azure

O Serviço de Aplicações do Azure oferece um serviço de alojamento na Web altamente dimensionável e com correção automática. 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ê terá 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 do banco de dados.
  • Atualize o modelo de dados e reimplante o aplicativo.
  • Transmita logs de aplicativos do Azure para o Visual Studio.

Pré-requisitos

  • Se 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 ASP.NET e 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.
    • Certifique-se de ter as atualizações mais recentes para o Visual Studio 2022 selecionando Ajuda>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 uma aplicação básica ASP.NET MVC de criar-ler-atualizar-eliminar (CRUD) que usa 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 em seu navegador padrão.

  4. No aplicativo, selecione Criar novo e crie alguns itens to-do .

    Captura de ecrã que mostra a aplicação Web ASP.NET.

  5. Teste as ligações Editar, Detalhes e Eliminar.

Publicar o aplicativo no Azure

Para publicar o aplicativo no Azure, crie e configure um perfil de Publicação que tenha um Serviço de Aplicativo do Azure e um Plano do Serviço de Aplicativo para hospedar o aplicativo. Em seguida, crie um SQL Server do Azure e um banco de dados SQL do Azure para conter os dados do aplicativo e configure 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 Azure como seu destino e selecione Avançar.

  3. Na tela seguinte, 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. No ecrã Publicar seguinte, inicie sessão na sua conta Microsoft e na subscrição que pretende utilizar.

  2. Ao lado de 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 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-z, 0-9e -. O nome do aplicativo Web deve ser exclusivo em todos os aplicativos do Azure.

  3. Ao lado de Grupo de recursos, selecione Novo e nomeie o grupo de recursos como 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, pode optar por eliminar todo o grupo de recursos num único passo simples mais tarde.

  4. Junto a Plano de Alojamento, selecione Novo.

    Um plano do serviço de aplicações especifica o local, tamanho e funcionalidades da farm de servidores Web que aloja a aplicação. Você pode economizar dinheiro ao hospedar vários aplicativos configurando os aplicativos Web para compartilhar um único plano do Serviço de Aplicativo.

    Os planos do Serviço de Aplicações definem:

    • Região (por exemplo: Europa do Norte, E.U.A. Leste, Ásia Sudeste)
    • Tamanho da instância (pequena, média, grande)
    • Contagem do dimensionamento (1 a 20 instâncias)
    • SKU (Gratuito, Partilhado, Básico, Standard ou Premium)
  5. Preencha a tela Plano de hospedagem e selecione OK.

    Definição Valor sugerido Para obter mais informações
    Plano do Serviço de Aplicações myAppServicePlan Planos do Serviço de Aplicações
    Localização Leste dos EUA Regiões do Azure
    Tamanho Gratuito Escalões de preços

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

  6. Na tela Serviço de Aplicativo (Windows), selecione Criar e aguarde a criação dos recursos do Azure.

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

    Captura de ecrã que mostra os recursos que criou.

Criar um servidor e uma base de dados

Antes de criar um banco de dados, você precisa de um servidor SQL lógico. Um servidor SQL lógico é uma construção lógica que contém um grupo de bancos de dados gerenciados como um grupo.

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

    Nota

    Certifique-se de configurar 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 Banco de Dados SQL do Azure e selecione Avançar.

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

  4. Na tela Banco de Dados SQL do Azure , ao lado de Servidor de banco de dados, selecione Novo.

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

  6. Selecione OK.

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

  7. Na tela Banco de Dados SQL do Azure , mantenha o Nome do Banco de Dados gerado padrão. Selecione Criar e aguarde a criação dos recursos do banco de dados.

    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 ecrã com mensagem sobre configurar a identidade gerida para o funcionamento da ligação.

    Nota

    Se, em vez disso, vir Ficheiros de segredos de utilizador local , certifique-se de que utilizou a página Publicar , não a página Serviços Ligados , para configurar a Base 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 conectar seu aplicativo aos recursos do Azure que não usa segredos ou senhas. Agora você precisa definir as permissões apropriadas no usuário SQL correspondente a essa identidade gerenciada para que a conexão funcione.

Configurar identidade gerenciada

Quando o assistente de criação do Banco de Dados SQL do Azure configurou o servidor SQL do Azure com uma identidade gerenciada e autenticação padrão do Entra ID, ele adicionou sua conta do Entra ID 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 Gestor de Pacotes NuGet>Consola do Gestor 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 seguinte comando 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 instruções para entrar.

  4. No prompt SQL, execute os seguintes comandos 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ê atualiza o código para fazer referência ao provedor do SQL Server do Entity Framework 6, que depende do provedor de ADO.NET Microsoft.Data.SqlClient moderno.

O provedor do Entity Framework 6 substitui o provedor incorporado do System.Data.SqlClient SQL Server e inclui suporte para os 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 para o contexto de banco de dados, mas, como System.Data.SqlClient é definido como o fornecedor no Serviço de Aplicativo do Azure, 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 Models/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. O seu aplicativo ASP.NET é implementado no Azure, e o seu navegador padrão é aberto no URL da aplicação implementada.

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

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

Parabéns! A aplicação ASP.NET condicionada por dados está em execução no Serviço de Aplicações 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 seu banco de dados SQL do Azure. No Pesquisador de Objetos do SQL Server, você pode executar as operações de banco de dados mais comuns, como executar consultas ou criar tabelas, exibições e procedimentos armazenados.

Permitir a ligação de cliente a partir do 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 a aplicação App Service que você criou.

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

Se lhe for pedido para adicionar acesso ao seu cliente local, certifique-se de que seleciona a opção Permitir o endereço IP público do computador. Esta 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 seu computador.

Se você não receber uma solicitação para adicionar acesso ao seu computador local, poderá ir para o banco de dados SQL do Azure no portal do Azure e selecionar Definir firewall do servidor na barra de menu superior. Na página Rede , em Regras de firewall, selecione a opção Adicionar o endereço IPv4 do cliente.

Nota

Se 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 Ver, selecione SQL Server Object Explorer.

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

  3. No ecrã Conectar, a sua ligação aparece sob o nó Azure. Preencha as informações para seu Nome do Servidor, Nome de Usuário, Senha e 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. Quando o Visual Studio concluir a configuração da conexão para sua instância do Banco de dados SQL, seu banco de dados aparecerá no Pesquisador de Objetos do SQL Server. Expanda <nome da conexão>>Bases de dados><nome da base 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 a aplicação com migrações Code First

Você pode usar ferramentas familiares no Visual Studio para atualizar seu banco de dados e aplicativo no Azure. Nesta etapa, você usa as migrações Code First 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 utilizar o Entity Framework Code First Migrations, veja Getting Started with Entity Framework 6 Code First using MVC 5 (Introdução a Entity Framework 6 Code First com MVC 5).

Atualizar o modelo de dados

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

public bool Done { get; set; }

Executar Primeiras Migrações de Código localmente

Execute alguns comandos para fazer atualizações à base de dados local.

  1. No menu Ferramentas, selecione Gestor de Pacotes NuGet>Consola do Gestor de Pacotes.

  2. Na janela da Consola do Gestor de Pacotes, ative as Migrações Code First:

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

    Add-Migration AddProperty
    
  4. Atualize a base de dados local:

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

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

Utilizar a nova propriedade

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

  1. Abra Controllers\TodosController.cs e, no Create() método na linha 52, adicione Done à lista de propriedades no Bind atributo. A sua Create() assinatura de método deve parecer com o seguinte exemplo de código:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  2. Abra Views\Todos\Create.cshtml e, no código Razor, anote 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 to-do e selecione Concluído. O item deve aparecer na sua página inicial como um item concluído. A vista Editar não mostra o campo Concluído , porque não alterou a vista Editar .

Ativar Migrações First Code no Azure

Agora que sua 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 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 as configurações de publicação abertas.

  3. No menu suspenso MyDatabaseContext, selecione a conexão de banco de dados para seu banco de dados SQL do Azure.

  4. Selecione Executar migrações Code First (executado no início do aplicativo) e, em seguida, selecione Salvar.

    Captura de ecrã que mostra Ativar Migrações Code First na aplicação Azure.

Publicar as alterações

Agora que você habilitou as migrações Code First em seu aplicativo do Azure, publique suas alterações de código.

  1. Na página Publicar, selecione Publicar.

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

    Todos os itens a fazer existentes continuam a ser apresentados. Quando você republica seu aplicativo ASP.NET, os dados existentes em seu 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 do Azure após a migração do Code First.

Transmitir em fluxo registos de aplicações

Você pode transmitir mensagens de rastreamento diretamente do seu aplicativo do Azure para o Visual Studio.

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

Ativar a transmissão em fluxo de registos

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

  2. Clique nas reticências ... no canto superior direito e selecione Ver logs de streaming.

    Captura de tela que mostra Ativar streaming de log.

    Os registos são agora transmitidos em fluxo para a janela Saída.

    Captura de ecrã que mostra a transmissão de logs na janela de saída.

    Você ainda não vê nenhuma mensagem de rastreamento, porque 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 os níveis de rastreio

  1. Para alterar os níveis de rastreio para gerar outras mensagens de rastreamento, na seção Hospedagem da página Publicar, selecione ... no canto superior direito e 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 Registo de aplicações (Sistema de ficheiros), selecione Detalhado em Nível e, em seguida, selecione Guardar.

    Gorjeta

    Pode experimentar diferentes níveis de rastreio para ver os tipos de mensagens que são apresentadas para cada nível. Por exemplo, o nível Informação inclui todos os registos criados por Trace.TraceInformation(), Trace.TraceWarning() e Trace.TraceError(), mas não os criados por Trace.WriteLine().

  4. No seu navegador, aceda à sua aplicação de lista do Azure to-do novamente e navegue na aplicação. 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 registo de transmissão em fluxo

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

Captura de ecrã que mostra Interromper transmissão de logs.

Clean up resources (Limpar recursos)

Nos passos anteriores, criou os recursos do Azure num grupo de recursos. Se provavelmente não necessitar desses recursos no futuro, pode eliminá-los ao eliminar o grupo de recursos.

  1. Na página Descrição geral da sua aplicação Web no portal do Azure, selecione a ligação myResourceGroup em Grupo de recursos.
  2. Na página do grupo de recursos, confirme que os recursos apresentados são aqueles que pretende eliminar.
  3. Selecione Excluir grupo de recursos, digite myResourceGroup na caixa de texto e 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.