Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
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.
Download het voorbeeldproject en pak het dotnet-sqldb-tutorial-master.zip-bestand uit.
Open het uitgepakte dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln-bestand in Visual Studio.
Druk op F5 om de app uit te voeren en te openen in uw standaardbrowser.
Notitie
Installeer indien nodig ontbrekende NuGet-pakketten.
Selecteer Nieuw maken in de app en maak een aantal to-do items.
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.
Klik in Visual Studio Solution Explorer met de rechtermuisknop op het DotNetAppSqlDb-project en selecteer Publiceren.
Selecteer Azure als doel in het scherm Publiceren en selecteer Volgende.
Controleer in het volgende scherm of Azure App Service (Windows) is geselecteerd en selecteer Volgende.
Aanmelden en een Azure App Service toevoegen
Meld u in het volgende publicatiescherm aan bij uw Microsoft-account en het abonnement dat u wilt gebruiken.
Selecteer Nieuwe aanmaken naast App Service.
De Azure App Service configureren
Configureer in het scherm App Service (Windows) de App Service-naam, resourcegroep en hostingabonnement.
Onder Naam kunt u de gegenereerde web-appnaam behouden of wijzigen in een andere naam met tekens
a-z
,0-9
en-
. De naam van de web-app moet uniek zijn in alle Azure-apps.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.
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)
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 Selecteer In het scherm App Service (Windows) de optie Maken en wacht u totdat de Azure-resources zijn gemaakt.
In het scherm Publiceren worden de resources weergegeven die u hebt geconfigureerd. Selecteer voltooien en selecteer sluiten.
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.
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 .
Selecteer in het scherm Verbinding maken met afhankelijkheidAzure SQL Database en selecteer Volgende.
Selecteer Nieuwe maken in het scherm Azure SQL Database configureren.
Selecteer Nieuw in het scherm Azure SQL Database naast databaseserver.
Wijzig de servernaam in een gewenste waarde. De servernaam moet uniek zijn voor alle servers in Azure SQL.
Kies OK.
Behoud in het scherm Azure SQL Database de standaard gegenereerde databasenaam. Selecteer Maken en wacht totdat de databasebronnen zijn gemaakt.
Wanneer de databasebronnen worden gemaakt, selecteert u Volgende.
Selecteer Voltooien in het scherm Verbinding maken met Azure SQL Database.
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.
Selecteer van het Tools menu de NuGet Package Manager>Package Manager Console.
Installeer de volgende pakketten in de Package Manager-console:
Install-Package Microsoft.Data.SqlClient Install-Package Microsoft.EntityFramework.SqlServer
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.
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
.
Verwijder in web.config de sectie
entityFramework/providers/provider
en regel:<provider invariantName="System.Data.SqlClient" .../>
.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()); } }
Voeg het volgende kenmerk toe aan de
MyDatabaseContext
klassedeclaratie:[DbConfigurationType(typeof(AppServiceConfiguration))]
De ASP.NET-app implementeren
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.
Als u de app wilt testen, voegt u enkele to-do items toe.
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
Vanuit het Weergave-menu selecteert u SQL Server-objectverkenner.
Selecteer boven aan het venster SQL Server Object Explorer het pictogram om SQL Server toe te voegen.
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.
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.
Vouw Tabellen uit, klik met de rechtermuisknop op de
ToDoes
tabel en selecteer Gegevens weergeven om te communiceren met de databasegegevens.
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.
Selecteer van het Tools menu de 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
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.
Open Controllers\TodosController.cs en voeg in de
Create()
methode op regel 52 de lijst met eigenschappen in hetBind
kenmerk toeDone
. UwCreate()
methodehandtekening moet eruitzien als de volgende code:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
Open Views\Todos\Create.cshtml en noteer in de Razor-code het
<div class="form-group">
element dat wordt gebruiktmodel.Description
en het<div class="form-group">
element dat wordt gebruiktmodel.CreatedDate
.Voeg na deze twee elementen het volgende
<div class="form-group">
element toe dat gebruikmaakt vanmodel.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>
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>
Voeg boven het
<td>
element met deHtml.ActionLink()
helpermethoden een ander<td>
element toe met de volgende Razor-code:<td> @Html.DisplayFor(modelItem => item.Done) </td>
Sla alle bestanden op en druk op Ctrl+F5 om de app uit te voeren.
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.
Klik in Visual Studio Solution Explorer met de rechtermuisknop op uw project en selecteer Publiceren.
Selecteer Meer acties>Bewerken om de publicatie-instellingen te openen.
Selecteer in de vervolgkeuzelijst MyDatabaseContext de databaseverbinding voor uw Azure SQL-database.
Selecteer Code First Migrations uitvoeren (wordt uitgevoerd bij het starten van de toepassing) en selecteer Vervolgens Opslaan.
Uw wijzigingen publiceren
Nu dat u Code First Migrations in uw Azure-app hebt ingeschakeld, moet u uw codewijzigingen publiceren.
Selecteer Publicerenop de pagina Publiceren.
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.
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
Schuif op de pagina Publiceren van Visual Studio omlaag naar de sectie Hosting .
Selecteer het beletselteken ... in de rechterbovenhoek en selecteer Streaminglogboeken weergeven.
De logboeken worden nu gestreamd naar het venster Uitvoer.
U ziet nog geen traceringsberichten, omdat wanneer u voor het eerst streaminglogboeken weergeven selecteert, uw Azure-app het traceringsniveau
Error
instelt op , waarmee alleen fout gebeurtenissen worden geregistreerd met behulp van deTrace.TraceError()
methode.
Traceringsniveaus wijzigen
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.
Selecteer op de azure-portalpagina voor uw app App Service-logboeken onder Bewaking in het linkermenu.
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()
enTrace.TraceError()
, maar niet de logboeken die zijn gemaakt doorTrace.WriteLine()
.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.
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.
Verwante inhoud
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.