Delen via


Zelfstudie: Een ASP.NET-app implementeren met Azure SQL-database in Azure

Azure App Service biedt een uiterst schaalbare webhostingservice met self-patchfunctie. In deze zelfstudie leert u hoe u een gegevensgestuurde ASP.NET-app implementeert in App Service en de app verbindt met Azure SQL Database.

Wanneer u klaar bent met de zelfstudie, hebt u een ASP.NET-app die is verbonden met een Azure SQL-database die wordt uitgevoerd in Azure. In het volgende voorbeeld ziet u de app-interface.

Schermopname van een gepubliceerde ASP.NET toepassing in Azure App Service.

In deze handleiding leert u:

  • Een gegevensgestuurde web-app publiceren naar Azure.
  • Maak een Azure SQL-database voor het opslaan van de app-gegevens.
  • Verbind de ASP.NET-app met de Azure SQL-database.
  • Configureer een beheerde identiteit en Microsoft Entra ID-verificatie voor de databaseverbinding.
  • Werk het gegevensmodel bij en implementeer de app opnieuw.
  • Stream toepassingslogboeken van Azure naar Visual Studio.

Vereisten

  • Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
  • Installeer Visual Studio 2022 met de ASP.NET- en webontwikkelingsworkloads en Azure-ontwikkelworkloads .
    • U kunt de werklasten toevoegen aan een bestaande Visual Studio-installatie door Hulpprogramma's en functies ophalen te selecteren in het menu Tools in Visual Studio.
    • Zorg ervoor dat u over de nieuwste updates voor Visual Studio 2022 beschikt door Help>controleren op updates te selecteren en indien nodig de nieuwste versie te installeren.

De app maken en uitvoeren

Het voorbeeldproject bevat een eenvoudige ASP.NET CRUD-app (Create-Read-Update-Delete) die gebruikmaakt van Entity Framework Code First.

  1. Download het voorbeeldproject en pak het dotnet-sqldb-tutorial-master.zip-bestand uit.

  2. Open het uitgepakte dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln-bestand in Visual Studio.

  3. Druk op F5 om de app uit te voeren en te openen in uw standaardbrowser.

    Notitie

    Installeer indien nodig ontbrekende NuGet-pakketten.

  4. Selecteer Nieuw maken in de app en maak een aantal to-do items.

    Schermopname van de ASP.NET web-app.

  5. Test de links Bewerken, Details en Verwijderen.

De app publiceren naar Azure

Als u de app naar Azure wilt publiceren, maakt en configureert u een publicatieprofiel met een Azure App Service- en App Service-plan om de app te hosten. Vervolgens maakt u een Azure SQL Server- en Azure SQL-database die de app-gegevens bevat en configureert u een databasecontext om de app te verbinden met de database.

  1. Klik in Visual Studio Solution Explorer met de rechtermuisknop op het DotNetAppSqlDb-project en selecteer Publiceren.

    Schermopname van Publiceren vanuit Solution Explorer.

  2. Selecteer Azure als doel in het scherm Publiceren en selecteer Volgende.

  3. Controleer in het volgende scherm of Azure App Service (Windows) is geselecteerd en selecteer Volgende.

Aanmelden en een Azure App Service toevoegen

  1. Meld u in het volgende publicatiescherm aan bij uw Microsoft-account en het abonnement dat u wilt gebruiken.

  2. Selecteer Nieuwe aanmaken naast App Service.

    Schermopname waarin het selecteren van Nieuwe aanmaken voor App Service in het deelvenster Publiceren wordt getoond.

De Azure App Service configureren

  1. Configureer in het scherm App Service (Windows) de App Service-naam, resourcegroep en hostingabonnement.

    Schermopname van het maken van een App Service-plan.

  2. Onder Naam kunt u de gegenereerde web-appnaam behouden of wijzigen in een andere naam met tekens a-z, 0-9en -. De naam van de web-app moet uniek zijn in alle Azure-apps.

  3. Selecteer naast Resourcegroep de optie Nieuw en geef de resourcegroep de naam myResourceGroup.

    Een resourcegroep is een logische container waarin Azure-resources, zoals web-apps, databases en opslagaccounts, worden geïmplementeerd en beheerd. U kunt bijvoorbeeld later de hele resourcegroep in één stap verwijderen.

  4. Selecteer bij HostingabonnementNieuw.

    Een App Service-plan geeft de locatie, de grootte en de functies van de webserverfarm aan die als host fungeert voor uw app. U kunt geld besparen bij het hosten van meerdere apps door de web-apps te configureren voor het delen van één App Service-plan.

    In App Service-plannen wordt het volgende gedefinieerd:

    • Regio (bijvoorbeeld: Europa - noord, VS - oost of Azië - zuidoost)
    • Exemplaargrootte (klein, normaal of groot)
    • Het schaalaanpassingsaantal (1 tot 20 exemplaren)
    • SKU (Free, Shared, Basic, Standard of Premium)
  5. Vul het scherm Hostingabonnement in en selecteer OK.

    Instelling Voorgestelde waarde Voor meer informatie
    App Service-plan myAppServicePlan App Service-abonnementen
    Plaats Oostelijke Verenigde Staten Azure-regio's
    Grootte Gratis Prijscategorieën

    Schermopname van het maken van het hostingabonnement.

  6. Selecteer In het scherm App Service (Windows) de optie Maken en wacht u totdat de Azure-resources zijn gemaakt.

  7. In het scherm Publiceren worden de resources weergegeven die u hebt geconfigureerd. Selecteer voltooien en selecteer sluiten.

    Schermopname van de resources die u hebt gemaakt.

Een server en database maken

Voordat u een database kunt maken, hebt u een logische SQL-server nodig. Een logische SQL-server is een logische omgeving met een groep met databases die worden beheerd als groep.

  1. Selecteer in het venster Publiceren voor de DotNetAppSqlDb-app in de sectie Serviceafhankelijkheden het beletselteken ... naast SQL Server Database en selecteer Verbinding maken.

    Notitie

    Zorg ervoor dat u de SQL Database configureert op het tabblad Publiceren , niet op het tabblad Verbonden services .

    Schermopname van het configureren van de SQL Database-afhankelijkheid.

  2. Selecteer in het scherm Verbinding maken met afhankelijkheidAzure SQL Database en selecteer Volgende.

  3. Selecteer Nieuwe maken in het scherm Azure SQL Database configureren.

  4. Selecteer Nieuw in het scherm Azure SQL Database naast databaseserver.

  5. Wijzig de servernaam in een gewenste waarde. De servernaam moet uniek zijn voor alle servers in Azure SQL.

  6. Kies OK.

    Schermopname van het maken van de server.

  7. Behoud in het scherm Azure SQL Database de standaard gegenereerde databasenaam. Selecteer Maken en wacht totdat de databasebronnen zijn gemaakt.

    Schermopname van het configureren van de database.

  8. Wanneer de databasebronnen worden gemaakt, selecteert u Volgende.

  9. Selecteer Voltooien in het scherm Verbinding maken met Azure SQL Database.

    Schermopname van het scherm met berichten over het configureren van een beheerde identiteit zodat de verbinding werkt.

    Notitie

    Als u in plaats daarvan lokale gebruikersgeheimbestanden ziet, moet u ervoor zorgen dat u de pagina Publiceren hebt gebruikt, niet de pagina Verbonden services , om SQL Database te configureren.

Uw Azure SQL Database-verbinding is nu ingesteld voor het gebruik van Managed Identity voor Azure-services, een veilige methode om uw app te verbinden met uw Azure-resources die geen geheimen of wachtwoorden gebruiken. U moet nu de juiste machtigingen instellen voor de SQL-gebruiker die overeenkomt met deze beheerde identiteit, zodat de verbinding werkt.

Beheerde identiteit configureren

Wanneer de Azure SQL Database-wizard is ingesteld om de Azure SQL-server te maken met een beheerde identiteit en Entra ID standaardverificatie, is uw Entra ID-account toegevoegd als de Azure SQL-beheerder. Als u bent aangemeld bij hetzelfde account in Visual Studio, kunt u dezelfde verbindingsreeks gebruiken om verbinding te maken met de database in zowel Visual Studio als Azure.

  1. Selecteer van het Tools menu de NuGet Package Manager>Package Manager Console.

  2. Installeer de volgende pakketten in de Package Manager-console:

    Install-Package Microsoft.Data.SqlClient
    Install-Package Microsoft.EntityFramework.SqlServer
    
  3. Voer in een PowerShell-opdrachtregel de volgende opdracht uit om u aan te melden bij SQL Database, waarbij u <server-name> de servernaam vervangt door de gebruikersnaam van <entra-id-user> Microsoft Entra die u hebt gebruikt om de database in Visual Studio in te stellen. Die Entra-gebruiker heeft standaard beheerderstoegang tot de databaseserver.

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

    Volg de aanwijzingen om u aan te melden.

  4. Voer bij de SQL-prompt de volgende opdrachten uit om de minimale machtigingen te verlenen die uw app nodig heeft, waarbij u <app-name> de naam van uw app vervangt.

    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
    

De databasecontext bijwerken

De app maakt gebruik van een databasecontext om verbinding te maken met de database, waarnaar wordt verwezen in het bestand Modellen/MyDatabaseContext.cs . In deze sectie werkt u de code bij om te verwijzen naar de Entity Framework 6 SQL Server-provider, die afhankelijk is van de moderne Microsoft.Data.SqlClient-ADO.NET-provider .

De Entity Framework 6-provider vervangt de ingebouwde System.Data.SqlClient SQL Server-provider en bevat ondersteuning voor Verificatiemethoden voor Microsoft Entra ID. Zie Microsoft.EntityFramework.SqlServer} voor meer informatie.

[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] werkt lokaal om Microsoft.Data.SqlClient te gebruiken voor de databasecontext, maar omdat System.Data.SqlClient als de provider is vastgelegd in Azure App Service, moet u MicrosoftSqlDbConfiguration uitbreiden om verwijzingen naar System.Data.SqlClient te herleiden naar Microsoft.Data.SqlClient.

  1. Verwijder in web.config de sectie entityFramework/providers/provider en regel: <provider invariantName="System.Data.SqlClient" .../>.

  2. Voeg in Modellen/MyDatabaseContext.cs de volgende klasse toe:

        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. Voeg het volgende kenmerk toe aan de MyDatabaseContext klassedeclaratie:

    [DbConfigurationType(typeof(AppServiceConfiguration))]
    

De ASP.NET-app implementeren

  1. Selecteer Publiceren bovenaan het tabblad Publiceren. Uw ASP.NET-app wordt geïmplementeerd in Azure en uw standaardbrowser wordt gestart met de URL van de geïmplementeerde app.

  2. Als u de app wilt testen, voegt u enkele to-do items toe.

    Schermopname van de gepubliceerde ASP.NET-toepassing in Azure App Service.

Gefeliciteerd Uw gegevensgestuurde ASP.NET-toepassing wordt live in Azure App Service uitgevoerd.

SQL Server-objectverkenner gebruiken

U kunt Visual Studio SQL Server Object Explorer gebruiken om uw Azure SQL-database eenvoudig te verkennen en te beheren. In SQL Server Object Explorer kunt u de meest voorkomende databasebewerkingen uitvoeren, zoals het uitvoeren van query's of het maken van tabellen, weergaven en opgeslagen procedures.

Clientverbinding vanaf uw computer toestaan

De Azure-server staat standaard alleen verbindingen met de databases toe vanuit Azure-services, zoals uw Azure-app. De nieuwe database heeft de firewall geopend voor de App Service-app die u hebt gemaakt.

Voor toegang tot de database vanaf uw lokale computer, zoals vanuit Visual Studio, moet de Azure-server de firewall openen om toegang te verlenen tot het openbare IP-adres van de computer.

Als u wordt gevraagd om toegang voor uw lokale client toe te voegen, selecteert u de optie om het openbare IP-adres van uw computer toe te staan. Met deze optie maakt u een firewallregel om het openbare IP-adres van uw lokale computer toe te staan. Het dialoogvenster is al gevuld met het huidige IP-adres van uw computer.

Als u geen prompt krijgt om toegang toe te voegen voor uw lokale computer, gaat u naar uw Azure SQL-database in Azure Portal en selecteert u Serverfirewall instellen op de bovenste menubalk. Selecteer op de pagina Netwerken onder Firewallregels de optie om het IPv4-adres van uw client toe te voegen.

Notitie

Als uw internetprovider uw openbare IP-adres wijzigt, moet u de firewall opnieuw configureren om opnieuw toegang te krijgen tot de Azure-database.

Lokaal verbinding maken met de Azure SQL-database

  1. Vanuit het Weergave-menu selecteert u SQL Server-objectverkenner.

  2. Selecteer boven aan het venster SQL Server Object Explorer het pictogram om SQL Server toe te voegen.

  3. In het scherm Verbinding maken wordt uw verbinding weergegeven onder het Azure-knooppunt . Vul de gegevens in voor uw servernaam, gebruikersnaam, wachtwoord en databasenaam en selecteer Verbinding maken.

    Schermopname van het configureren van de databaseverbinding vanuit Visual Studio.

  4. Zodra Visual Studio klaar is met het configureren van de verbinding voor uw SQL Database-exemplaar, wordt uw database weergegeven in SQL Server Object Explorer. Vouw <de verbindingsnaam>>Databases><uw databasenaam>> uit om de gegevens weer te geven.

  5. Vouw Tabellen uit, klik met de rechtermuisknop op de ToDoes tabel en selecteer Gegevens weergeven om te communiceren met de databasegegevens.

    Schermopname van het verkennen van SQL Database-objecten.

De app bijwerken met Code First Migrations

U kunt vertrouwde hulpprogramma's in Visual Studio gebruiken om uw database en app in Azure bij te werken. In deze stap gebruikt u Code First Migrations in Entity Framework om uw databaseschema te wijzigen en de wijziging naar Azure te publiceren.

Zie voor meer informatie over het gebruik van Entity Framework Code First Migrations, Aan de slag met Entity Framework 6 Code First met MVC 5.

Gegevensmodel bijwerken

Open Models\Todo.cs in de code-editor. Voeg de volgende eigenschap toe aan de klasse ToDo:

public bool Done { get; set; }

Code First Migrations lokaal uitvoeren

Voer enkele opdrachten uit om de lokale database bij te werken.

  1. Selecteer van het Tools menu de NuGet Package Manager>Package Manager Console.

  2. Schakel in het Package Manager Console-venster Code First Migrations in:

    Enable-Migrations
    
  3. Voeg een migratie toe:

    Add-Migration AddProperty
    
  4. Werk de lokale database bij:

    Update-Database
    
  5. Druk op Ctrl+F5 om de app uit te voeren. Test de koppelingen Bewerken, Details en Nieuwe maken.

Als de toepassing zonder fouten wordt geladen, is Code First Migrations geslaagd. Uw pagina ziet er echter nog steeds hetzelfde uit omdat uw toepassingslogica deze nieuwe eigenschap nog niet gebruikt.

Nieuwe eigenschap gebruiken

Breng enkele wijzigingen aan in uw code om de Done eigenschap in actie te zien. Voor deze zelfstudie wijzigt u alleen de Index en Create weergaven om de nieuwe eigenschap te gebruiken.

  1. Open Controllers\TodosController.cs en voeg in de Create() methode op regel 52 de lijst met eigenschappen in het Bind kenmerk toeDone. Uw Create() methodehandtekening moet eruitzien als de volgende code:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  2. Open Views\Todos\Create.cshtml en noteer in de Razor-code het <div class="form-group"> element dat wordt gebruikt model.Description en het <div class="form-group"> element dat wordt gebruikt model.CreatedDate.

    Voeg na deze twee elementen het volgende <div class="form-group"> element toe dat gebruikmaakt van 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. Open Views\Todos\Index.cshtml en voeg net boven het lege <th></th> element de volgende Razor-code toe:

    <th>
        @Html.DisplayNameFor(model => model.Done)
    </th>
    
  4. Voeg boven het <td> element met de Html.ActionLink() helpermethoden een ander <td> element toe met de volgende Razor-code:

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    
  5. Sla alle bestanden op en druk op Ctrl+F5 om de app uit te voeren.

  6. Voeg in de app een to-do item toe en selecteer Gereed. Het item moet op de startpagina worden weergegeven als een voltooid item. In de weergave Bewerken wordt het veld Gereed niet weergegeven, omdat u de bewerkingsweergave niet hebt gewijzigd.

Code First Migrations in Azure uitvoeren

Nu uw codewijziging werkt, inclusief databasemigratie, kunt u deze publiceren naar uw Azure-app en uw Azure SQL-database bijwerken met Code First Migrations.

  1. Klik in Visual Studio Solution Explorer met de rechtermuisknop op uw project en selecteer Publiceren.

  2. Selecteer Meer acties>Bewerken om de publicatie-instellingen te openen.

    Schermopname van het openen van publicatie-instellingen.

  3. Selecteer in de vervolgkeuzelijst MyDatabaseContext de databaseverbinding voor uw Azure SQL-database.

  4. Selecteer Code First Migrations uitvoeren (wordt uitgevoerd bij het starten van de toepassing) en selecteer Vervolgens Opslaan.

    Schermopname met het inschakelen van Code First Migrations in Azure-app.

Uw wijzigingen publiceren

Nu dat u Code First Migrations in uw Azure-app hebt ingeschakeld, moet u uw codewijzigingen publiceren.

  1. Selecteer Publicerenop de pagina Publiceren.

  2. Probeer in de gepubliceerde web-app opnieuw meer to-do items toe te voegen en Gereed te selecteren. Deze moeten op de startpagina worden weergegeven als voltooide items.

    Alle bestaande taakitems worden nog steeds weergegeven. Wanneer u uw ASP.NET-toepassing opnieuw publiceert, gaan bestaande gegevens in uw Azure SQL-database niet verloren. Code First Migrations wijzigt ook alleen het gegevensschema en laat uw gegevens intact.

    Schermopname van de Azure-app na Code First-migratie.

Toepassingslogboeken streamen

U kunt traceringsberichten rechtstreeks vanuit uw Azure-app streamen met Visual Studio.

Open Controllers\TodosController.cs en houd er rekening mee dat elke actie begint met een Trace.WriteLine() methode. Deze code laat zien hoe u traceringsberichten toevoegt aan uw Azure-app.

Logboekstreaming activeren

  1. Schuif op de pagina Publiceren van Visual Studio omlaag naar de sectie Hosting .

  2. Selecteer het beletselteken ... in de rechterbovenhoek en selecteer Streaminglogboeken weergeven.

    Schermopname waarin wordt aangetoond hoe Logboekstreaming moet worden ingeschakeld.

    De logboeken worden nu gestreamd naar het venster Uitvoer.

    Schermopname die logstreaming in het uitvoervenster toont.

    U ziet nog geen traceringsberichten, omdat wanneer u voor het eerst streaminglogboeken weergeven selecteert, uw Azure-app het traceringsniveau Errorinstelt op , waarmee alleen fout gebeurtenissen worden geregistreerd met behulp van de Trace.TraceError() methode.

Traceringsniveaus wijzigen

  1. Als u de traceringsniveaus wilt wijzigen om andere traceringsberichten uit te voeren, selecteert u in de sectie Hosting van de pagina Publiceren de ... in de rechterbovenhoek en selecteert u Openen in Azure Portal.

  2. Selecteer op de azure-portalpagina voor uw app App Service-logboeken onder Bewaking in het linkermenu.

  3. Selecteer onder Toepassingslogboeken (bestandssysteem)Verbose onder Niveau en selecteer vervolgens Opslaan.

    Aanbeveling

    U kunt experimenteren met verschillende traceringsniveaus om te zien welke typen berichten worden weergegeven voor elk niveau. Het niveau Informatie omvat bijvoorbeeld alle logboeken die zijn gemaakt voor Trace.TraceInformation(), Trace.TraceWarning() en Trace.TraceError(), maar niet de logboeken die zijn gemaakt door Trace.WriteLine().

  4. Ga in uw browser opnieuw naar uw Azure to-do-lijsttoepassing en navigeer door de app. Traceberichten zoals de onderstaande voorbeelden, worden nu gestreamd naar het uitvoervenster in 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
    

Logboekstreaming stoppen

Als u de logboekstreamingservice wilt stoppen, selecteert u het Stop monitoring pictogram in het venster Uitvoer.

Schermopname die stoppen van logboekstreaming laat zien.

Resources opschonen

In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Als u deze resources in de toekomst waarschijnlijk niet nodig hebt, kunt u ze verwijderen door de resourcegroep te verwijderen.

  1. Selecteer op de pagina Overzicht in Azure Portal de link myResourceGroup onder Resourcegroep.
  2. Controleer op de pagina van de resourcegroep of de weergegeven resources de resources zijn die u wilt verwijderen.
  3. Selecteer Resourcegroep verwijderen, typ myResourceGroup in het tekstvak en selecteer vervolgens Verwijderen.
  4. Bevestig het opnieuw door Verwijderen te selecteren.

Ga naar de volgende zelfstudie voor meer informatie over het gebruik van een beheerde identiteit om de beveiliging van azure SQL Database-verbindingen te verbeteren.