Zelfstudie: Een ASP.NET-app implementeren in Azure met Azure SQL Database
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, hebt u een ASP.NET-app die wordt uitgevoerd in Azure en is verbonden met SQL Database.
In deze zelfstudie leert u het volgende:
- Een database maken in Azure SQL Database
- Een ASP.NET-app verbinden met SQL Database
- De app implementeren in Azure
- Het gegevensmodel bijwerken en de app opnieuw implementeren
- Logboeken vanaf Azure naar uw terminal streamen
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
Vereisten
Vereisten om deze zelfstudie te voltooien:
Installeer Visual Studio 2022 met de ASP.NET- en webontwikkelingsworkloads en Azure-ontwikkelworkloads .
Als u Visual Studio al hebt geïnstalleerd, voegt u de workloads toe in Visual Studio door te klikken op Extra>Hulpprogramma's en functies ophalen.
Het voorbeeld downloaden
Extraheer (uitpakken) het dotnet-sqldb-zelfstudie-master.zip-bestand.
Het voorbeeldproject bevat een eenvoudige ASP.NET MVC-CRUD-app (create-read-update-delete) die gebruikmaakt van Entity Framework Code First.
De app uitvoeren
Open het bestand dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln in Visual Studio.
Typ
F5
om de app uit te voeren. De app wordt weergegeven in de standaardbrowser.Notitie
Als u Visual Studio en de vereisten alleen hebt geïnstalleerd, moet u mogelijk ontbrekende pakketten installeren via NuGet.
Selecteer de koppeling Nieuwe maken en maak enkele taakitems.
Test de links Bewerken, Details en Verwijderen.
De app maakt gebruik van een databasecontext om met de database te verbinden. In dit voorbeeld gebruikt de databasecontext een verbindingsreeks met de naam MyDbConnection
. De verbindingsreeks waarnaar wordt verwezen in het bestand Models/MyDatabaseContext.cs is ingesteld in het bestand Web.config. De naam van de tekenreeks wordt verderop in de zelfstudie gebruikt om de Azure-app te verbinden met een Azure SQL Database.
De ASP.NET-toepassing publiceren in Azure
Klik in de Solution Explorer met de rechtermuisknop op uw project DotNetAppSqlDb en selecteer Publiceren.
Selecteer Azure als doel en klik op Volgende.
Zorg ervoor dat Azure-app Service (Windows) is geselecteerd en klik op Volgende.
Aanmelden en een app toevoegen
Klik in het dialoogvenster Publiceren op Aanmelden.
Meld u aan bij uw Azure-abonnement. Als u al bent aangemeld bij een Microsoft-account, moet u ervoor zorgen dat dit account uw Azure-abonnement bevat. Als het aangemelde Microsoft-account niet uw Azure-abonnement bevat, klikt u erop om het juiste account toe te voegen.
Klik in het deelvenster App Service-exemplaren op +.
Naam van web-app configureren
U kunt de naam van de gegenereerde web-app houden of wijzigen in een andere unieke naam (geldige tekens zijn a-z
, 0-9
en -
). De naam van de web-app wordt gebruikt als onderdeel van de standaard-URL voor uw app (<app_name>.azurewebsites.net
, waarbij <app_name>
de naam is van uw web-app). De naam van de web-app moet uniek zijn in alle apps in Azure.
Notitie
Selecteer Nog niet Maken .
Een brongroep maken
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.
Klik naast Resourcegroep op Nieuw.
Noem de resourcegroep myResourceGroup.
Een App Service-plan maken
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)
Klik naast Hostingabonnement op Nieuw.
Configureer in het dialoogvenster App Service-plan configureren het nieuwe App Service-plan met de volgende instellingen en klik op OK:
Instelling Voorgestelde waarde Voor meer informatie App Service-plan myAppServicePlan App Service-abonnementen Location Europa -west Azure-regio's Grootte Gratis Prijscategorieën Klik op Maken en wacht tot de Azure-resources zijn gemaakt.
In het dialoogvenster Publiceren ziet u de resources die u hebt geconfigureerd. Klik op Voltooien.
Een server en database maken
Voordat u een database maakt, 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.
Schuif in het dialoogvenster Publiceren omlaag naar de sectie Serviceafhankelijkheden . Klik naast SQL Server Database op Configureren.
Notitie
Zorg ervoor dat u de SQL Database configureert vanaf de pagina Publiceren in plaats van de pagina Verbonden services .
Selecteer Azure SQL Database en klik op Volgende.
Klik in het dialoogvenster Azure SQL Database configureren op +.
Klik naast databaseserver op Nieuw.
De servernaam wordt gebruikt als onderdeel van de standaard-URL voor uw server.
<server_name>.database.windows.net
Deze moet uniek zijn op alle servers in Azure SQL. Wijzig de servernaam in een gewenste waarde.Voeg een administrator-gebruikersnaam en een wachtwoord toe. Zie Wachtwoordbeleid voor de vereisten voor wachtwoordcomplexiteit.
Onthoud deze gebruikersnaam en dit wachtwoord. U hebt deze later nodig om de server te beheren.
Belangrijk
Hoewel u uw wachtwoord in de verbindingsreeksen wordt gemaskeerd (in Visual Studio en ook in App Service), vergroot het feit dat het ergens wordt bijgehouden de kwetsbaarheid van uw app voor aanvallen. App Service kan beheerde service-identiteiten gebruiken om dit risico te elimineren door het bijhouden van geheimen in uw code of app-configuratie geheel onnodig te maken. Zie voor meer informatie Volgende stappen.
Klik op OK.
Behoud in het dialoogvenster Azure SQL Database de standaard gegenereerde databasenaam. Selecteer Maken en wacht totdat de databasebronnen zijn gemaakt.
Databaseverbinding configureren
Wanneer de wizard klaar is met het maken van de databasebronnen, klikt u op Volgende.
Typ MyDbConnection in de database verbindingsreeks naam. Deze naam moet overeenkomen met de verbindingsreeks waarnaar wordt verwezen in Models/MyDatabaseContext.cs.
Typ in de gebruikersnaam en het wachtwoord voor de databaseverbinding de gebruikersnaam en het wachtwoord van de beheerder die u hebt gebruikt in Een server maken.
Zorg ervoor dat Azure-app Instellingen is geselecteerd en klik op Voltooien.
Notitie
Als u in plaats daarvan lokale gebruikersgeheimbestanden ziet, moet u SQL Database hebben geconfigureerd vanaf de pagina Connected Services in plaats van de pagina Publiceren.
Wacht tot de configuratiewizard is voltooid en klik op Sluiten.
Uw ASP.NET-app implementeren
Schuif op het tabblad Publiceren terug naar boven en klik op Publiceren. Zodra uw ASP.NET-app is geïmplementeerd in Azure. De standaardbrowser wordt gestart met de URL van de geïmplementeerde app.
Voeg enkele taakitems toe.
Gefeliciteerd Uw gegevensgestuurde ASP.NET-toepassing wordt live in Azure App Service uitgevoerd.
Lokale toegang tot de database
Met Visual Studio kunt u uw nieuwe database in Azure eenvoudig verkennen en beheren in de SQL Server-Objectverkenner. De nieuwe database heeft de firewall al geopend voor de App Service-app die u hebt gemaakt. Maar als u deze wilt openen vanaf uw lokale computer (bijvoorbeeld vanuit Visual Studio), moet u een firewall openen voor het openbare IP-adres van uw lokale computer. Als uw internetprovider uw openbare IP-adres wijzigt, moet u de firewall opnieuw configureren om opnieuw toegang te krijgen tot de Azure-database.
Een databaseverbinding maken
Vanuit het Weergave-menu selecteert u SQL Server-objectverkenner.
Aan de bovenkant van SQL Server-objectverkenner, klikt u op de knop SQL Server toevoegen.
Verbinding met de database configureren
Vouw in het dialoogvenster Verbinden het Azure-knooppunt uit. Al uw SQL Database-exemplaren in Azure worden hier weergegeven.
Selecteer de database die u eerder hebt gemaakt. De verbinding die u eerder hebt gemaakt, wordt automatisch onderaan ingevuld.
Typ het wachtwoord van de databasebeheerder dat u eerder hebt gemaakt en klik op Verbinden.
Clientverbinding vanaf uw computer toestaan
Het dialoogvenster Een nieuwe firewallregel maken. Een server staat standaard alleen verbindingen naar de bijbehorende databases toe vanuit Azure-services, zoals uw Azure-app. Maak een firewallregel op serverniveau om buiten Azure verbinding te maken met uw database. De firewallregel staat het openbare IP-adres van uw lokale computer toe.
In het dialoogvenster is het openbare IP-adres van uw computer al ingevuld.
Zorg ervoor dat Mijn client-IP toevoegen is geselecteerd en klik op OK.
Zodra de Visual Studio klaar is met het maken van de firewallinstelling voor uw exemplaar van SQL Database, wordt uw verbinding weergegeven in SQL Server-objectverkenner.
Hier kunt u de meest voorkomende databasebewerkingen uitvoeren, zoals het uitvoeren van query's, het maken van weergaven en opgeslagen procedures en meer.
Breid uw verbindingsdatabases >><uw databasetabellen>> uit. Klik met de rechtermuisknop op de
Todoes
-tabel en selecteer Gegevens weergeven.
De app bijwerken met Code First Migrations
U kunt de vertrouwde hulpprogramma's in Visual Studio gebruiken om uw database en app in Azure bij te werken. In deze stap kunt u met Code First Migrations in Entity Framework een wijziging aanbrengen in uw databaseschema en deze publiceren naar Azure.
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.
Klik in het menu Hulpprogramma’s op NuGet Package Manager>Package Manager Console.
Schakel in het Package Manager Console-venster Code First Migrations in:
Enable-Migrations
Voeg een migratie toe:
Add-Migration AddProperty
Werk de lokale database bij:
Update-Database
Typ
Ctrl+F5
om de app uit te voeren. Test de links voor bewerkingen, details, en maken.
Als de toepassing wordt geladen zonder fouten, is Code First Migrations voltooid. 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 de code aan zodat de eigenschap Done
kan worden gebruikt. Om deze zelfstudie eenvoudig te houden, wijzigt u eerst de weergaven Index
en Create
om de eigenschap in actie te zien.
Open Controllers\TodosController.cs.
Zoek de methode
Create()
in regel 52 en voegDone
toe aan de lijst met eigenschappen in het kenmerkBind
. Als u klaar bent, ziet uw methodeCreate()
er uit als de onderstaande code:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
Open Views\Todos\Create.cshtml.
In de Razor-code zou u een
<div class="form-group">
-element moeten zien datmodel.Description
gebruikt en vervolgens een ander<div class="form-group">
-element voormodel.CreatedDate
. Voeg direct na deze twee elementen een ander<div class="form-group">
-element voormodel.Done
toe:<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>
Open Views\Todos\Index.cshtml.
Zoek het lege element
<th></th>
. Vlak boven dit element voegt u de volgende Razor-code toe:<th> @Html.DisplayNameFor(model => model.Done) </th>
Zoek het
<td>
-element dat de helpermethodenHtml.ActionLink()
bevat. Voeg boven dit<td>
een ander<td>
-element toe met de volgende Razor-code:<td> @Html.DisplayFor(modelItem => item.Done) </td>
Meer hebt u niet nodig om de wijzigingen in de weergaven
Index
enCreate
te zien.Typ
Ctrl+F5
om de app uit te voeren.
U kunt nu een taakitem toevoegen en Gereed aanvinken. Het moet nu als een voltooid taakitem worden weergegeven op uw startpagina. In de weergave Edit
wordt het veld Done
niet getoond omdat u de weergave Edit
niet hebt gewijzigd.
Code First Migrations in Azure uitvoeren
Nu het wijzigen van uw code werkt, met inbegrip van de databasemigratie, moet u deze publiceren naar uw Azure-app en ook uw SQL Database bijwerken met Code First Migrations.
Klik net als voorheen met de rechtermuisknop op uw project en selecteer Publiceren.
Klik op Meer acties>Bewerken om de publicatie-instellingen te openen.
Selecteer in de vervolgkeuzelijst MyDatabaseContext de databaseverbinding voor uw Azure SQL Database.
Selecteer Code First-migraties uitvoeren (wordt uitgevoerd bij de start van toepassing), klik vervolgens op Opslaan.
Uw wijzigingen publiceren
Nu dat u Code First Migrations in uw Azure-app hebt ingeschakeld, moet u uw codewijzigingen publiceren.
Klik op de publicatiepagina op Publiceren.
Probeer opnieuw taakitems toe te voegen en selecteer Gereed, dan moeten ze worden weergegeven in uw startpagina als een voltooid item.
Alle bestaande taakitems worden nog steeds weergegeven. Wanneer u uw ASP.NET-toepassing opnieuw publiceert, gaan bestaande gegevens in uw SQL Database niet verloren. En met Code First Migrations wordt alleen het gegevensschema gewijzigd. De bestaande gegevens blijven ongewijzigd.
Toepassingslogboeken streamen
U kunt traceringsberichten rechtstreeks vanuit uw Azure-app streamen met Visual Studio.
Open Controllers\TodosController.cs.
Elke actie begint met een Trace.WriteLine()
-methode. Deze code wordt toegevoegd om te tonen hoe u traceringsberichten toevoegt aan uw Azure-app.
Logboekstreaming activeren
Schuif op de publicatiepagina omlaag naar de sectie Hosting .
Klik in de rechterhoek op ...>Streaminglogboeken weergeven.
De logboeken worden nu gestreamd naar het venster Uitvoer.
U ziet echter nog geen traceerberichten. Wanneer u voor het eerst Streaminglogboeken bekijken selecteert, stelt uw Azure-app namelijk eerst het traceringsniveau op
Error
in. Dit legt alleen foutgebeurtenissen vast (met de methodeTrace.TraceError()
).
Traceringsniveaus wijzigen
Als u de traceringsniveaus wilt wijzigen om andere traceringsberichten uit te voeren, gaat u terug naar de publicatiepagina.
Klik in de sectie Hosting op ...> Open in Azure Portal.
Selecteer App Service-logboeken in het linkermenu op de portalbeheerpagina voor uw app.
Selecteer uitgebreid in niveau onder Toepassingslogboeken (bestandssysteem). Klik op Opslaan.
Tip
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()
enTrace.TraceError()
, maar niet de logboeken die zijn gemaakt doorTrace.WriteLine()
.Navigeer in uw browser opnieuw naar uw app op http://< appnaam.azurewebsites.net> en klik vervolgens rond de takenlijsttoepassing in Azure. Nu worden de traceringsberichten gestreamd naar het venster Uitvoer in Visual Studio.
Application: 2017-04-06T23:30:41 PID[8132] Verbose GET /Todos/Index Application: 2017-04-06T23:30:43 PID[8132] Verbose GET /Todos/Create Application: 2017-04-06T23:30:53 PID[8132] Verbose POST /Todos/Create Application: 2017-04-06T23:30:54 PID[8132] Verbose GET /Todos/Index
Logboekstreaming stoppen
Om de service logboekstreaming te stoppen, klikt u op de knop Bewaking stoppen in het venster Uitvoer.
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.
- Selecteer op de pagina Overzicht in Azure Portal de link myResourceGroup onder Resourcegroep.
- Controleer op de pagina van de resourcegroep of de weergegeven resources de resources zijn die u wilt verwijderen.
- Selecteer Resourcegroep verwijderen, typ myResourceGroup in het tekstvak en selecteer vervolgens Verwijderen.
- Bevestig het opnieuw door Verwijderen te selecteren.
Volgende stappen
In deze zelfstudie heeft u het volgende geleerd:
- Een database maken in Azure SQL Database
- Een ASP.NET-app verbinden met SQL Database
- De app implementeren in Azure
- Het gegevensmodel bijwerken en de app opnieuw implementeren
- Logboeken vanaf Azure naar uw terminal streamen
Ga naar de volgende zelfstudie om te ontdekken hoe u eenvoudig de beveiliging van uw verbinding met Azure SQL Database kunt verbeteren.
Meer resources:
Wilt u uw clouduitgaven optimaliseren en geld besparen?