Sdílet prostřednictvím


Kurz: Nasazení aplikace ASP.NET s azure SQL Database do Azure

Azure App Service je vysoce škálovatelná služba s automatickými opravami pro hostování webů. V tomto kurzu se dozvíte, jak nasadit aplikaci ASP.NET řízenou daty ve službě App Service a připojit ji ke službě Azure SQL Database.

Po dokončení kurzu máte aplikaci ASP.NET připojenou k databázi Azure SQL běžící v Azure. Následující příklad ukazuje rozhraní aplikace.

Snímek obrazovky znázorňující publikovanou ASP.NET aplikaci ve službě Azure App Service

V tomto kurzu se naučíte:

  • Publikování webové aplikace řízené daty do Azure
  • Vytvořte databázi Azure SQL pro uložení dat aplikace.
  • Připojte aplikaci ASP.NET k databázi Azure SQL.
  • Nakonfigurujte spravovanou identitu a ověřování Microsoft Entra ID pro připojení k databázi.
  • Aktualizujte datový model a znovu nasaďte aplikaci.
  • Streamování protokolů aplikací z Azure do sady Visual Studio

Požadavky

  • Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.
  • Nainstalujte Visual Studio 2022 s úlohami vývoje pro ASP.NET a web a vývoj pro Azure.
    • Úlohy můžete přidat do existující instalace sady Visual Studio výběrem možnosti Získat nástroje a funkce v nabídce Visual Studio Tools .
    • Zkontrolujte, jestli máte nejnovější aktualizace sady Visual Studio 2022, a to tak, že vyberete Možnost Vyhledat>aktualizace a v případě potřeby nainstalujete nejnovější verzi.

Vytvoření a spuštění aplikace

Ukázkový projekt obsahuje základní aplikaci ASP.NET MVC create-read-update-delete (CRUD), která používá Entity Framework Code First.

  1. Stáhněte si ukázkový projekt a extrahujte soubordotnet-sqldb-tutorial-master.zip .

  2. Otevřete extrahovaný soubor dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln v sadě Visual Studio.

  3. Stisknutím klávesy F5 spusťte aplikaci a otevřete ji ve výchozím prohlížeči.

    Poznámka:

    V případě potřeby nainstalujte všechny chybějící balíčky NuGet.

  4. V aplikaci vyberte Vytvořit nový a vytvořte několik to-do položek.

    Snímek obrazovky znázorňující webovou aplikaci ASP.NET

  5. Otestujte odkazy Upravit, Podrobnosti a Odstranit.

Publikování aplikace do Azure

Pokud chcete aplikaci publikovat do Azure, vytvoříte a nakonfigurujete profil publikování, který má k hostování aplikace azure App Service a plán služby App Service. Pak vytvoříte Azure SQL Server a databázi Azure SQL, která bude obsahovat data aplikace, a nakonfigurujete kontext databáze pro připojení aplikace k databázi.

  1. V Průzkumníku řešení sady Visual Studio klikněte pravým tlačítkem na projekt DotNetAppSqlDb a vyberte Publikovat.

    Snímek obrazovky ukazující publikování z Průzkumníka řešení.

  2. Na obrazovce Publikovat vyberte Jako cíl Azure a vyberte Další.

  3. Na další obrazovce se ujistěte, že je vybraná služba Azure App Service (Windows) a vyberte Další.

Přihlášení a přidání služby Azure App Service

  1. Na další obrazovce Publikovat se přihlaste ke svému účtu Microsoft a předplatnému, které chcete použít.

  2. Vedle služby App Service vyberte Vytvořit novou.

    Snímek obrazovky znázorňující výběr možnosti Vytvořit nový pro App Service v podokně Publikovat

Konfigurace služby Azure App Service

  1. Na obrazovce App Service (Windows) nakonfigurujte název služby App Service, skupinu prostředků a plán hostování.

    Snímek obrazovky znázorňující vytvoření plánu služby App Service

  2. V části Název můžete zachovat vygenerovaný název webové aplikace nebo ho změnit na jiný název s znaky a-z, 0-9a -. Název webové aplikace musí být jedinečný pro všechny aplikace Azure.

  3. Vedle skupiny prostředků vyberte Nový a pojmenujte skupinu prostředků myResourceGroup.

    Skupina prostředků je logický kontejner, do kterého se nasazují a spravují prostředky Azure, jako jsou webové aplikace, databáze a účty úložiště. Později se například můžete rozhodnout odstranit celou skupinu prostředků v jednom jednoduchém kroku.

  4. Vedle položky Plán hostování vyberte Nový.

    Plán služby App Service určuje umístění, velikost a funkce farmy webových serverů, která je hostitelem vaší aplikace. Když hostujete více aplikací, můžete ušetřit tím, že nakonfigurujete webové aplikace tak, aby sdílely jeden plán služby App Service.

    Plány služby App Service definují:

    • Oblast (například Severní Evropa, USA – východ nebo Jihovýchodní Asie)
    • Velikost instance (Malá, Střední, Velká)
    • Počet škálování (1 až 20 instancí)
    • SKU (Free, Shared, Basic, Standard, Premium)
  5. Dokončete obrazovku Plán hostování a pak vyberte OK.

    Nastavení Navrhovaná hodnota Další informace
    Plán služby App Service myAppServicePlan Plány služby App Service
    Místo USA – východ Oblasti Azure
    Velikost Bezplatné Cenové úrovně

    Snímek obrazovky znázorňující vytvoření plánu hostování

  6. Na obrazovce App Service (Windows) vyberte Vytvořit a počkejte na vytvoření prostředků Azure.

  7. Na obrazovce Publikovat se zobrazují prostředky, které jste nakonfigurovali. Vyberte Dokončit a poté vyberte Zavřít.

    Snímek obrazovky znázorňující prostředky, které jste vytvořili

Vytvoření serveru a databáze

Než budete moct vytvořit databázi, potřebujete logický SQL server. Logický SQL server je logický konstruktor, který obsahuje skupinu databází spravovaných jako skupinu.

  1. Na obrazovce Publikovat u aplikace DotNetAppSqlDb v části Závislosti služby vyberte ikonu ... vedle Databáze SQL Serveru a zvolte Připojit.

    Poznámka:

    Nezapomeňte nakonfigurovat službu SQL Database na kartě Publikovat , ne na kartě Připojené služby .

    Snímek obrazovky znázorňující konfiguraci závislosti služby SQL Database

  2. Na obrazovce Připojení k závislosti vyberte Azure SQL Database a pak vyberte Další>.

  3. Na obrazovce Konfigurace služby Azure SQL Database vyberte Vytvořit novou.

  4. Na obrazovce Azure SQL Database vedle databázového serveru vyberte Nový.

  5. Změňte název serveru na požadovanou hodnotu. Název serveru musí být jedinečný na všech serverech v Azure SQL.

  6. Vyberte OK.

    Snímek obrazovky znázorňující vytvoření serveru

  7. Na obrazovce Azure SQL Database ponechte výchozí vygenerovaný název databáze. Vyberte Vytvořit a počkejte na vytvoření databázových prostředků.

    Snímek obrazovky znázorňující konfiguraci databáze

  8. Po vytvoření databázových prostředků vyberte Další.

  9. Na obrazovce Připojit ke službě Azure SQL Database vyberte Dokončit.

    Snímek obrazovky se zprávou o potřebě konfigurace spravované identity pro správnou funkci připojení.

    Poznámka:

    Pokud se místo toho zobrazí soubory tajných kódů místního uživatele , ujistěte se, že jste ke konfiguraci služby SQL Database použili stránku Publikovat , nikoli stránku Připojené služby .

Připojení ke službě Azure SQL Database je teď nastavené tak, aby používalo spravovanou identitu pro služby Azure. Je to bezpečná metoda připojení aplikace k prostředkům Azure, které nepoužívají tajné kódy nebo hesla. Teď musíte nastavit příslušná oprávnění pro uživatele SQL odpovídající této spravované identitě, aby připojení fungovalo.

Konfigurace spravované identity

Když průvodce vytvořením služby Azure SQL Database nastaví server Azure SQL se spravovanou identitou a výchozím ověřováním Entra ID, přidal váš účet Entra ID jako administrátora Azure SQL. Pokud jste přihlášení ke stejnému účtu ve Visual Studio, můžete k připojení k databázi ve Visual Studio i Azure použít stejný připojovací řetězec.

  1. V nabídce Nástroje vyberte Správce balíčků NuGet>Konzola Správce balíčků.

  2. V konzole Správce balíčků nainstalujte následující balíčky:

    Install-Package Microsoft.Data.SqlClient
    Install-Package Microsoft.EntityFramework.SqlServer
    
  3. V příkazovém řádku PowerShellu spusťte následující příkaz, kterým se přihlásíte ke službě SQL Database a nahradíte <server-name> názvem vašeho serveru a <entra-id-user> uživatelským jménem Microsoft Entra, které jste použili k nastavení databáze v sadě Visual Studio. Tento uživatel Entra má ve výchozím nastavení přístup správce k databázovému serveru.

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

    Podle pokynů se přihlaste.

  4. Na příkazovém řádku SQL spusťte následující příkazy, které udělují minimální oprávnění, která vaše aplikace potřebuje, a nahraďte <app-name> názvem vaší aplikace.

    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
    

Aktualizace kontextu databáze

Aplikace používá kontext databáze pro připojení k databázi, na kterou odkazuje soubor Models/MyDatabaseContext.cs . V této části aktualizujete kód tak, aby odkazoval na zprostředkovatele SQL Serveru Entity Framework 6, který závisí na moderním ADO.NET poskytovateli Microsoft.Data.SqlClient.

Zprostředkovatel Entity Framework 6 nahrazuje integrovaného System.Data.SqlClient poskytovatele SQL Serveru a zahrnuje podporu metod ověřování Microsoft Entra ID. Další informace naleznete v tématu Microsoft.EntityFramework.SqlServer}.

cs-CZ: [DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] funguje lokálně k použití Microsoft.Data.SqlClient pro kontext databáze, ale protože je System.Data.SqlClient pevně zakódován jako poskytovatel ve službě Azure App Service, je třeba rozšířit MicrosoftSqlDbConfiguration pro přesměrování odkazů z System.Data.SqlClient na Microsoft.Data.SqlClient.

  1. V web.config odeberte oddíl a čáru entityFramework/providers/provider: <provider invariantName="System.Data.SqlClient" .../>.

  2. Do pole Models/MyDatabaseContext.cs přidejte následující třídu:

        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. Do deklarace třídy přidejte následující atribut MyDatabaseContext :

    [DbConfigurationType(typeof(AppServiceConfiguration))]
    

Nasazení aplikace ASP.NET

  1. V horní části karty Publikovat vyberte Publikovat. Vaše ASP.NET aplikace se nasadí do Azure a výchozí prohlížeč se spustí na adresu URL nasazené aplikace.

  2. Pokud chcete aplikaci otestovat, přidejte několik to-do položek.

    Snímek obrazovky znázorňující publikovanou ASP.NET aplikaci ve službě Azure App Service

Gratulujeme! Vaše aplikace ASP.NET řízená daty je spuštěná ve službě Azure App Service.

Použití Průzkumníka objektů SQL Serveru

Pomocí Průzkumníka objektů SQL Serveru sady Visual Studio můžete snadno prozkoumat a spravovat databázi Azure SQL. V Průzkumníku objektů SQL Serveru můžete provádět nejběžnější databázové operace, jako jsou spouštění dotazů nebo vytváření tabulek, zobrazení a uložených procedur.

Povolení klientských připojení z vašeho počítače

Server Azure ve výchozím nastavení umožňuje připojení ke svým databázím jenom ze služeb Azure, jako je vaše aplikace Azure. Nová databáze otevřela svou bránu firewall pro aplikaci App Service, kterou jste vytvořili.

Pokud chcete získat přístup k databázi z místního počítače, například ze sady Visual Studio, musí server Azure otevřít bránu firewall, aby byl povolený přístup pro veřejnou IP adresu počítače.

Pokud se zobrazí výzva k přidání přístupu pro místního klienta, nezapomeňte vybrat možnost Povolit veřejnou IP adresu počítače. Tato možnost vytvoří pravidlo brány firewall, které povolí veřejnou IP adresu místního počítače. Dialogové okno je již vyplněno aktuální IP adresou vašeho počítače.

Pokud se vám nezobrazí výzva k přidání přístupu k místnímu počítači, můžete přejít do databáze Azure SQL na webu Azure Portal a v horním řádku nabídek vybrat Nastavit bránu firewall serveru . Na stránce Sítě v části Pravidla brány firewall vyberte možnost Přidat adresu IPv4 klienta.

Poznámka:

Pokud váš poskytovatel internetových služeb změní vaši veřejnou IP adresu, je potřeba znovu nakonfigurovat bránu firewall pro přístup k databázi Azure.

Místní připojení k databázi Azure SQL

  1. V nabídce Zobrazení vyberte Průzkumník objektů systému SQL Server.

  2. V horní části okna Průzkumníka objektů SQL Serveru vyberte ikonu pro přidání SQL Serveru.

  3. Na obrazovce Připojit se vaše připojení zobrazí pod uzlem Azure . Vyplňte informace o názvu serveru, uživatelském jménu, heslu a názvu databáze a vyberte Připojit.

    Snímek obrazovky znázorňující konfiguraci připojení k databázi ze sady Visual Studio

  4. Jakmile Visual Studio dokončí konfiguraci připojení pro instanci služby SQL Database, zobrazí se vaše databáze v Průzkumníku objektů SQL Serveru. Pokud chcete zobrazit data, rozbalte< název připojení>>Databáze><název vaší databáze>>.

  5. Rozbalte tabulky, klikněte pravým tlačítkem myši na ToDoes tabulku a vyberte Zobrazit data , abyste mohli pracovat s daty databáze.

    Snímek obrazovky znázorňující zkoumání objektů služby SQL Database

Aktualizace aplikace pomocí migrací Code First

K aktualizaci databáze a aplikace v Azure můžete použít známé nástroje v sadě Visual Studio. V tomto kroku použijete migrace Code First v Entity Frameworku ke změně schématu databáze a publikování změny do Azure.

Další informace o použití migrace Entity Framework Code First najdete v tématu Začínáme s migrací Entity Framework 6 Code First s použitím MVC 5.

Aktualizace datového modelu

Otevřete Models\Todo.cs v editoru kódu. Do třídy ToDo přidejte následující vlastnost:

public bool Done { get; set; }

Místní spuštění migrace Code First

Spuštěním několika příkazů aktualizujte místní databázi.

  1. V nabídce Nástroje vyberte Správce balíčků NuGet>Konzola Správce balíčků.

  2. V okně konzoly správce balíčků povolte migraci Code First:

    Enable-Migrations
    
  3. Přidejte migraci:

    Add-Migration AddProperty
    
  4. Aktualizujte místní databázi:

    Update-Database
    
  5. Stisknutím kláves Ctrl+F5 spusťte aplikaci. Otestujte odkazy Upravit, Podrobnosti a Vytvořit Nové.

Pokud se aplikace načte bez chyb, migrace Code First byla úspěšná. Vaše stránka ale stále vypadá stejně, protože logika aplikace ještě tuto novou vlastnost nepoužívá.

Použití nové vlastnosti

Provedením některých změn v kódu zobrazíte Done vlastnost v akci. V tomto kurzu změníte pouze zobrazení Index a Create tak, aby používala novou vlastnost.

  1. Otevřete Controllers\TodosController.cs a v Create() metodě na řádku 52 přidejte Done do seznamu vlastností v atributu Bind . Podpis Create() metody by měl vypadat jako následující kód:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  2. Otevřete Views\Todos\Create.cshtml a v kódu Razor si poznamenejte <div class="form-group"> prvek, který používá model.Description , a <div class="form-group"> element, který používá model.CreatedDate.

    Za tyto dva prvky přidejte následující <div class="form-group"> prvek, který používá 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. Otevřete Views\Todos\Index.cshtml a těsně nad prázdný <th></th> prvek přidejte následující kód Razor:

    <th>
        @Html.DisplayNameFor(model => model.Done)
    </th>
    
  4. <td> Nad prvek, který obsahuje Html.ActionLink() pomocné metody, přidejte další <td> prvek s následujícím kódem Razor:

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    
  5. Uložte všechny soubory a stisknutím kláves Ctrl+F5 spusťte aplikaci.

  6. V aplikaci přidejte to-do položku a vyberte Hotovo. Položka by se měla zobrazit na domovské stránce jako dokončená položka. Zobrazení Úpravy nezobrazuje pole Hotovo, protože jste zobrazení Úpravy nezměnili.

Povolení migrace Code First v Azure

Teď, když vaše změna kódu funguje, včetně migrace databáze, ji můžete publikovat do aplikace Azure a aktualizovat databázi Azure SQL pomocí migrací Code First.

  1. V Průzkumníku řešení sady Visual Studio klikněte pravým tlačítkem na projekt a vyberte Publikovat.

  2. Výběrem možnosti Další akce>Upravit otevřete nastavení publikování.

    Snímek obrazovky znázorňující otevření nastavení publikování

  3. V rozevíracím seznamu MyDatabaseContext vyberte připojení k databázi Azure SQL.

  4. Vyberte Spustit migraci Code First (spustí se při spuštění aplikace) a pak vyberte Uložit.

    Snímek obrazovky znázorňující povolení migrací Code First v aplikaci Azure

Publikování provedených změn

Teď, když jste v aplikaci Azure povolili Migrace Code First, publikujte změny kódu.

  1. Na stránce Publikovat klikněte na tlačítko Publikovat.

  2. V publikované webové aplikaci zkuste znovu přidat další to-do položky a vybrat Hotovo a měly by se zobrazit na domovské stránce jako dokončené položky.

    Všechny vaše existující položky úkolů jsou nadále zobrazené. Když aplikaci ASP.NET znovu publikujete, stávající data v databázi Azure SQL se neztratí. Migrace Code First také změní pouze schéma dat a data zůstanou nedotčená.

    Snímek obrazovky znázorňující aplikaci Azure po migraci Code First

Streamování protokolů aplikací

Trasovací zprávy můžete streamovat přímo z aplikace Azure do sady Visual Studio.

Otevřete Controllers\TodosController.cs a všimněte si, že každá akce začíná metodou Trace.WriteLine() . Tento kód ukazuje, jak do aplikace Azure přidat trasovací zprávy.

Povolení streamování protokolů

  1. Na stránce Publikovat v sadě Visual Studio se posuňte dolů do části Hostování .

  2. Vyberte tři tečky ... v pravém horním rohu a vyberte Zobrazit protokoly streamování.

    Snímek obrazovky znázorňující zapnutí streamování protokolů

    Protokoly se teď streamují do okna Výstup.

    Snímek obrazovky znázorňující streamování protokolů v okně Výstup

    Zatím se nezobrazují žádné trasovací zprávy, protože když poprvé vyberete Zobrazit protokoly streamování, vaše aplikace Azure nastaví úroveň trasování na Error, která protokoluje pouze chybové události pomocí Trace.TraceError() této metody.

Změna úrovní trasování

  1. Pokud chcete změnit úrovně trasování tak, aby se vyskytly další zprávy trasování, vyberte v části Hostování stránky Publikování vpravo nahoře ... a pak vyberte Otevřít na webu Azure Portal.

  2. Na stránce webu Azure Portal pro vaši aplikaci vyberte protokoly služby App Service v části Monitorování v nabídce vlevo.

  3. V části Protokolování aplikace (Systém souborů) vyberte Podrobné v části Úroveň a pak vyberte Uložit.

    Návod

    Můžete experimentovat s různými úrovněmi trasování, abyste viděli, jaké typy zpráv se zobrazí pro jednotlivé úrovně. Například úroveň Informace zahrnuje všechny protokoly vytvořené metodami Trace.TraceInformation(), Trace.TraceWarning() a Trace.TraceError(), ale nezahrnuje protokoly vytvořené metodou Trace.WriteLine().

  4. V prohlížeči znovu přejděte do aplikace Azure to-do seznamu a prozkoumejte aplikaci. Trasování zpráv, podobných následujícím příkladům, se nyní přenáší do okna Výstup v aplikaci 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
    

Zastavení streamování protokolů

Pokud chcete zastavit službu streamování protokolů, vyberte v okně Výstup ikonu Zastavit monitorování.

Screenshot that shows Stop log streaming.Snímek obrazovky zastavující streamování logů.

Vyčištění prostředků

V předchozích krocích jste vytvořili prostředky Azure ve skupině prostředků. Pokud předpokládáte, že už tyto prostředky nebudete potřebovat, můžete je odstranit tak, že odstraníte skupinu prostředků.

  1. Na stránce Přehled vaší webové aplikace na webu Azure Portal vyberte odkaz myResourceGroup v části Skupina prostředků.
  2. Na stránce skupiny prostředků zkontrolujte, že chcete všechny uvedené prostředky odstranit.
  3. Vyberte Odstranit skupinu prostředků, do textového pole zadejte myResourceGroup a pak vyberte Odstranit.
  4. Potvrďte to znovu tak, že vyberete Odstranit.

V dalším kurzu se dozvíte, jak používat spravovanou identitu ke zlepšení zabezpečení připojení ke službě Azure SQL Database.