Självstudie: Distribuera en ASP.NET-app till Azure med Azure SQL Database
Med Azure App Service får du en automatiskt uppdaterad webbvärdtjänst med hög skalbarhet. Den här självstudien visar hur du distribuerar en datadriven ASP.NET-app i App Service och ansluter den till Azure SQL Database. När du är klar har du en ASP.NET app som körs i Azure och är ansluten till SQL Database.
I den här självstudien lär du dig att:
- Skapa en databas i Azure SQL Database
- Ansluta en ASP.NET-app till SQL Database
- distribuera appen till Azure
- uppdatera datamodellen och distribuera om appen
- strömma loggar från Azure till terminalen
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Förutsättningar
För att slutföra den här kursen behöver du:
Installera Visual Studio 2022 med arbetsbelastningarna ASP.NET och webbutveckling och Azure Development .
Om du redan har installerat Visual Studio lägger du till arbetsbelastningarna i Visual Studio genom att klicka på Tools (Verktyg)>Get Tools and Features (Skaffa verktyg och funktioner).
Hämta exemplet
Extrahera (zippa upp) filen dotnet-sqldb-tutorial-master.zip.
Exempelprojektet innehåller en enkel ASP.NET MVC CRUD-app (create-read-update-delete) som använder Entity Framework Code First.
Kör appen
Öppna filen dotnet-sqldb-kursen-master/DotNetAppSqlDb.sln i Visual Studio.
Skriv
F5
för att köra appen. Appen visas i din standardwebbläsare.Kommentar
Om du bara har installerat Visual Studio och kraven kan du behöva installera paket som saknas via NuGet.
Välj länken Skapa nytt och skapa några att-göra-objekt.
Testa länkarna Edit (Redigera), Details (Information) och Delete (Ta bort).
Appen använder en databaskontext för att ansluta till databasen. I det här exemplet använder databaskontexten en anslutningssträng med namnet MyDbConnection
. Anslutningssträngen har angetts i filen Web.config och refereras till i filen Models/MyDatabaseContext.cs. Anslutningssträngens namn används senare under självstudien för att ansluta Azure-appen till Azure SQL Database.
Publicera ASP.NET program till Azure
I Solution Explorer: Högerklicka på projektet DotNetAppSqlDb och välj Publicera.
Välj Azure som mål och klicka på Nästa.
Kontrollera att Azure App Service (Windows) är markerat och klicka på Nästa.
Logga in och lägg till en app
I dialogrutan Publicera klickar du på Logga in.
Logga in på din Azure-prenumeration. Om du redan är inloggad på ett Microsoft-konto kontrollerar du att kontot tillhör din Azure-prenumeration. Om kontot inte tillhör din Azure-prenumeration klickar du på den för att lägga till rätt konto.
I fönstret App Service-instanser klickar du på +.
Konfigurera webbappnamnet
Du kan behålla det genererade webbappnamnet eller ändra det till ett annat unikt namn (giltiga tecken är a-z
, 0-9
och -
). Webbappnamnet används som en del av standard-URL:en för din app (<app_name>.azurewebsites.net
, där <app_name>
är webbappnamnet). Webbappnamnet måste vara unikt inom alla appar i Azure.
Kommentar
Välj inte Skapa ännu.
Skapa en resursgrupp
En resursgrupp är en logisk container där Azure-resurser, till exempel webbappar, databaser och lagringskonton, distribueras och hanteras. Du kan exempelvis välja att ta bort hela resursgruppen i ett enkelt steg längre fram.
Klicka på Ny bredvid Resursgrupp.
Ge resursgruppen namnet myResourceGroup.
Skapa en App Service-plan
En App Service-plan anger plats, storlek och funktioner för webbservergruppen som är värd för din app. Du kan spara pengar när du är värd för flera appar genom att konfigurera webbapparna så att de delar en enda App Service-plan.
App Service-planer definierar följande:
- Region (till exempel: Europa, norra; USA, östra; Asien, sydöstra m.m.)
- Instansstorlek (liten, medel eller stor)
- Skalningsantal (1 till 20 instanser)
- SKU (Kostnadsfri, Delad, Basic, Standard eller Premium)
Bredvid Värdplan klickar du på Ny.
I dialogrutan Konfigurera App Service-plan konfigurerar du den nya App Service-planen med följande inställningar och klickar på OK:
Inställning Föreslaget värde Mer information App Service-plan myAppServicePlan App Service-planer Plats Västeuropa Azure-regioner Storlek Kostnadsfri Prisnivåer Klicka på Skapa och vänta tills Azure-resurserna har skapats.
Dialogrutan Publicera visar de resurser som du har konfigurerat. Klicka på Finish.
Skapa en server och en databas
Innan du skapar en databas behöver du en logisk SQL-server. En logisk SQL-server är en logisk konstruktion som innehåller en grupp databaser som hanteras som en grupp.
I dialogrutan Publicera rullar du ned till avsnittet Tjänstberoenden. Bredvid SQL Server Database klickar du på Konfigurera.
Kommentar
Se till att konfigurera SQL Database från sidan Publicera i stället för sidan Anslutna tjänster.
Välj Azure SQL Database och klicka på Nästa.
I dialogrutan Konfigurera Azure SQL Database klickar du på +.
Bredvid Databasservern klickar du på Ny.
Servernamnet används som en del av standard-URL:en för servern,
<server_name>.database.windows.net
. Den måste vara unik för alla servrar i Azure SQL. Ändra servernamnet till ett värde som du vill ha.Lägg till ett användarnamn och lösenord med administratörsbehörighet. För krav på lösenordskomplexitet, se Lösenordsprincip.
Kom ihåg det här användarnamnet och lösenordet. Du behöver dem för att hantera servern senare.
Viktigt!
Även om ditt lösenord maskeras i anslutningssträngar (i Visual Studio och i App Service) så ökar din apps riskexponering eftersom lösenordet är sparat någonstans. App Service kan använda hanterade tjänstidentiteter till att eliminera den här risken, eftersom du inte behöver ha med några hemligheter alls i koden eller appkonfigurationen. Mer information finns under Nästa steg.
Klicka på OK.
Behåll det standardgenererade databasnamnet i dialogrutan Azure SQL Database. Välj Skapa och vänta tills databasresurserna har skapats.
Konfigurera databasanslutning
När guiden har skapat databasresurserna klickar du på Nästa.
Skriv MyDbConnection i databasens niska veze namn. Det här namnet måste överensstämma med den anslutningssträng som refereras till i Models/MyDatabaseContext.cs.
I Databasanslutningsanvändarnamn och Lösenord för databasanslutning skriver du administratörens användarnamn och lösenord som du använde i Skapa en server.
Kontrollera att Azure App Settings har valts och klicka på Slutför.
Kommentar
Om du ser filer med lokala användarhemligheter i stället måste du ha konfigurerat SQL Database från sidan Anslutna tjänster i stället för sidan Publicera .
Vänta tills konfigurationsguiden är klar och klicka på Stäng.
Distribuera din ASP.NET-app
På fliken Publicera rullar du tillbaka upp till toppen och klickar på Publicera. När din ASP.NET app har distribuerats till Azure. Din standardwebbläsare startas med URL:en till den distribuerade appen.
Lägg till några att-göra-uppgifter.
Grattis! Din datadrivna ASP.NET-app körs live i Azure App Service.
Få åtkomst till databasen lokalt
Med Visual Studio kan du enkelt utforska och hantera din nya databas i Azure i SQL Server Object Explorer. Den nya databasen har redan öppnat brandväggen för App Service-appen som du skapade. Men för att komma åt den från din lokala dator (till exempel från Visual Studio) måste du öppna en brandvägg för den lokala datorns offentliga IP-adress. Om internetleverantören ändrar din offentliga IP-adress måste du konfigurera om brandväggen för att få åtkomst till Azure-databasen igen.
Skapa en databasanslutning
Gå till Visa-menyn och välj SQL Server Object Explorer.
Klicka högst upp i SQL Server Object Explorer på knappen Add SQL Server (Lägg till SQL Server).
Konfigurera databasanslutningen
Visa noden Azure i dialogrutan Connect (Anslut). Alla dina SQL Database-instanser i Azure visas här.
Välj den databas som du skapade tidigare. Den anslutning som du skapade tidigare fylls i automatiskt längst ned.
Ange databasadministratörens lösenord som du skapade tidigare och klicka på Connect (Anslut).
Tillåta klientanslutning från datorn
Dialogrutan Create a new firewall rule (Skapa en ny brandväggsregel) öppnas. Som standard tillåter en server endast anslutningar till sina databaser från Azure-tjänster, till exempel din Azure-app. Om du vill ansluta till databasen utanför Azure skapar du en brandväggsregel på servernivå. Brandväggsregeln tillåter din lokala dators offentliga IP-adress.
Dialogrutan är redan ifylld med datorns offentliga IP-adress.
Se till att Add my client IP (Lägg till min klient-IP) är markerat och klicka på OK.
När Visual Studio har skapat brandväggsinställningen för SQL Database-instansen visas anslutningen i SQL Server Object Explorer.
Här kan du utföra de vanligaste databasåtgärderna, till exempel köra frågor, skapa vyer och lagrade procedurer och mycket mer.
Expandera din anslutning >Databaser databastabeller>><>. Högerklicka på tabellen
Todoes
och välj Visa data.
Uppdatera app med Code First Migrations
Du kan använda välbekanta verktyg i Visual Studio för att uppdatera din databas och app i Azure. I det här steget använder du Code First Migrations i Entity Framework för att göra en ändring i databasschemat och publicera det i Azure.
Mer information om att använda Entity Framework Code First Migrations finns i artikeln om att komma igång med Entity Framework 6 Code First med MVC 5.
Uppdatera datamodellen
Öppna Models\Todo.cs i kodredigeraren. Lägg till följande egenskap i klassen ToDo
:
public bool Done { get; set; }
Kör Code First Migrations lokalt
Kör några kommandon och gör uppdateringar i den lokala databasen.
Gå till Verktyg-menyn och klicka på NuGet Package Manager>Package Manager-konsolen.
Aktivera Code First Migrations i fönstret Package Manager-konsolen:
Enable-Migrations
Lägg till en migrering:
Add-Migration AddProperty
Uppdatera den lokala databasen:
Update-Database
Skriv
Ctrl+F5
för att köra appen. Testa länkarna Edit (Redigera), Details (Information) och Create (Skapa).
Om programmet läses in utan fel har Code First Migrations slutförts. Sidan ser dock fortfarande likadan ut eftersom programlogik inte använder den här nya egenskapen ännu.
Använda den nya egenskapen
Gör några ändringar i koden så att du använder egenskapen Done
. För att göra självstudien enklare ska du bara ändra vyerna Index
och Create
så att du ser hur egenskapen fungerar.
Öppna Controllers\TodosController.cs.
Leta upp metoden
Create()
på rad 52 och lägg tillDone
i egenskapslistan i attributetBind
. När du är klar ser signaturen för metodenCreate()
ut som följande kod:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
Öppna Views\Todos\Create.cshtml.
I Razor-koden bör du se ett
<div class="form-group">
-element som användermodel.Description
och sedan ett annat<div class="form-group">
-element som användermodel.CreatedDate
. Direkt efter dessa två element ska du lägga till ett annat<div class="form-group">
-element som användermodel.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>
Öppna Views\Todos\Index.cshtml.
Sök efter det tomma
<th></th>
-elementet. Lägg till följande Razor-kod direkt ovanför det här elementet:<th> @Html.DisplayNameFor(model => model.Done) </th>
Leta upp
<td>
-elementet som innehåller hjälpmetodernaHtml.ActionLink()
. Ovanför detta<td>
ska du lägga till ett<td>
-element med följande Razor-kod:<td> @Html.DisplayFor(modelItem => item.Done) </td>
Det är allt som krävs för att du ska se ändringarna i vyerna
Index
ochCreate
.Skriv
Ctrl+F5
för att köra appen.
Du kan nu lägga till en att-göra-uppgift och markera Klart. Den ska sedan visas på din startsida som en slutförd uppgift. Kom ihåg att vyn Edit
inte innehåller fältet Done
eftersom du inte ändrade vyn Edit
.
Aktivera Code First Migrations i Azure
Nu när kodändringen fungerar, inklusive databasmigreringen, publicerar du den i din Azure-app och uppdaterar även din SQL Database med Code First Migrations.
Precis som tidigare högerklickar du på projektet och väljer Publish (Publicera).
Klicka på Fler åtgärder>Redigera för att öppna publiceringsinställningarna.
I listrutan MyDatabaseContext väljer du databasanslutningen för din Azure SQL Database.
Välj Execute Code First Migrations (runs on application start) (Utför Code First Migrations (körs när programmet startar)) och klicka på Save (Spara).
Publicera dina ändringar
Nu när du har aktiverat Code First Migrations i Azure-appen kan du publicera kodändringarna.
Klicka på Publicera på publiceringssidan.
Försök att lägga till uppgifter att göra igen och välj Done (Klar). De ska då visas på din startsida som en slutförd punkt.
Alla befintliga att-göra-uppgifter visas fortfarande. När du publicerar om ditt ASP.NET program går inte befintliga data i SQL Database förlorade. Code First Migrations ändrar dessutom endast dataschemat, så att befintliga data lämnas intakta.
Strömma programloggar
Du kan strömma spårningsmeddelanden direkt från din Azure-app till Visual Studio.
Öppna Controllers\TodosController.cs.
Varje åtgärd börjar med en Trace.WriteLine()
-metod. Den här koden har lagts till för att visa hur du lägger till spårningsmeddelanden i din Azure-app.
Aktivera loggströmning
Rulla ned till avsnittet Värd på publiceringssidan.
I det högra hörnet klickar du på ...>Visa direktuppspelningsloggar.
Loggarna strömmas nu till fönstret Output (Utdata).
Men än ser du inga spårningsmeddelanden. Det beror på att när du väljer View Streaming Logs (Visa strömningsloggar) anges spårningsnivån i Azure-appen till
Error
, då endast felhändelser loggas (medTrace.TraceError()
-metoden).
Ändra spårningsnivåer
Om du vill ändra spårningsnivåer för att mata ut andra spårningsmeddelanden går du tillbaka till publiceringssidan.
I avsnittet Värd klickar du på ...>Öppna i Azure-portalen.
På sidan för portalhantering för din app går du till den vänstra menyn och väljer App Service-loggar.
Under Programloggning (filsystem) väljer du Utförlig i Nivå. Klicka på Spara.
Dricks
Du kan experimentera med olika spårningsnivåer och se vilka typer av meddelanden som visas för varje nivå. Till exempel omfattar nivån Information alla loggar som skapats av
Trace.TraceInformation()
,Trace.TraceWarning()
ochTrace.TraceError()
, men inte loggar som skapats avTrace.WriteLine()
.I webbläsaren navigerar du till din app igen på http://< din appnamn.azurewebsites.net> och försöker sedan klicka runt att göra-listprogrammet i Azure. Spårningsmeddelanden strömmas nu till fönstret Output (Utdata) i 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
Stoppa loggströmning
Om du vill avsluta loggströmningstjänsten klickar du på knappen Stop monitoring (Stoppa övervakning) i fönstret Output (Utdata).
Rensa resurser
I de föregående stegen skapade du Azure-resurser i en resursgrupp. Om du inte tror att du behöver dessa resurser i framtiden, kan du ta bort dem genom att ta bort resursgruppen.
- Från ditt webbprograms Översiktsida i Azure portal väljer du länken myResourceGroup under resursgruppen.
- Kontrollera att resurser på resursgruppsidan är de som du vill ta bort.
- Välj Ta bort resursgrupp, skriv myResourceGroup i textrutan och välj sedan Ta bort.
- Bekräfta igen genom att välja Ta bort.
Nästa steg
I den här självstudiekursen lärde du dig att:
- Skapa en databas i Azure SQL Database
- Ansluta en ASP.NET-app till SQL Database
- distribuera appen till Azure
- uppdatera datamodellen och distribuera om appen
- strömma loggar från Azure till terminalen
Gå vidare till nästa självstudie där du får lära dig hur du enkelt kan förbättra säkerheten för din Azure SQL Database-anslutning.
Fler resurser:
Vill du optimera och spara på dina molnutgifter?