Oktatóanyag: ASP.NET-alkalmazás üzembe helyezése az Azure-ban az Azure SQL Database használatával

Az Azure App Service egy hatékonyan méretezhető, önjavító webes üzemeltetési szolgáltatás. Ez az oktatóanyag bemutatja, hogyan helyezhet üzembe adatvezérelt ASP.NET-alkalmazást az App Service-ben, és hogyan csatlakoztathatja azt az Azure SQL Database-hez. Ha végzett, egy ASP.NET alkalmazás fut az Azure-ban, és csatlakozik az SQL Database-hez.

Published ASP.NET application in Azure App Service

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Adatbázis létrehozása az Azure SQL Database-ben
  • ASP.NET-alkalmazás csatlakoztatása SQL Database-adatbázishoz
  • Az alkalmazás üzembe helyezése az Azure-ban
  • Az adatmodell frissítése és az alkalmazás ismételt üzembe helyezése
  • Naplók streamelése az Azure-ból a saját terminálba

If you don't have an Azure subscription, create an Azure free account before you begin.

Előfeltételek

Az oktatóanyag elvégzéséhez:

Telepítse a Visual Studio 2022-t a ASP.NET és webfejlesztési és Azure-fejlesztési számítási feladatokkal.

Ha már telepítette a Visual Studiót, adja hozzá a számítási feladatokat a Visual Studióban a Tools (Eszközök) >Get Tools and Features (Eszközök és funkciók beszerzése) elemre kattintva.

A minta letöltése

  1. Töltse le a mintaprojektet.

  2. Bontsa ki (csomagolja ki) a dotnet-sqldb-tutorial-master.zip fájlt.

A mintaprojekt az Entity Framework Code First szolgáltatást használó, alapszintű ASP.NET MVC CRUD (létrehoz-olvas-frissít-töröl) alkalmazást tartalmaz.

Az alkalmazás futtatása

  1. Nyissa meg a dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln fájlt a Visual Studióban.

  2. Az alkalmazás futtatásához nyomja le a F5 billentyűkombinációt. Az alkalmazás megjelenik az alapértelmezett böngészőben.

    Megjegyzés:

    Ha csak a Visual Studiót és az előfeltételeket telepítette, előfordulhat, hogy hiányzó csomagokat kell telepítenie a NuGeten keresztül.

  3. Kattintson az Új létrehozása hivatkozásra, és hozzon létre néhány teendőt.

    New ASP.NET Project dialog box

  4. Tesztelje az Edit (Szerkesztés), a Details (Részletek) és a Delete (Törlés) hivatkozást.

Az alkalmazás adatbázis-környezetet használ az adatbázishoz való kapcsolódáshoz. Ebben a példában az adatbázis-környezet a MyDbConnection nevű kapcsolati sztringet használja. A kapcsolati sztring a Web.config fájlban adható meg, és a Models/MyDatabaseContext.cs fájl hivatkozik rá. Az oktatóanyag későbbi részében a kapcsolati sztring nevet használjuk az Azure-alkalmazás Azure SQL Database-hez való csatlakoztatásához.

ASP.NET-alkalmazás közzététele az Azure-ban

  1. A Solution Explorer (Megoldáskezelő) lapon kattintson a jobb gombbal a DotNetAppSqlDb projektre, és válassza a Publish (Közzététel) elemet.

    Publish from Solution Explorer

  2. Válassza ki az Azure-t célként, és kattintson a Tovább gombra.

  3. Győződjön meg arról, hogy a Azure-alkalmazás Szolgáltatás (Windows) ki van jelölve, és kattintson a Tovább gombra.

Bejelentkezés és alkalmazás hozzáadása

  1. A Közzététel párbeszédpanelen kattintson a Bejelentkezés gombra.

  2. Jelentkezzen be az Azure-előfizetésbe. Ha már be van jelentkezve egy Microsoft-fiókba, győződjön meg arról, hogy abban a fiókban található az előfizetése. Ha nem abban a Microsoft-fiókban van az Azure-előfizetése, amelyikbe be van jelentkezve, kattintással adja hozzá a helyes fiókot.

  3. Az App Service-példányok panelen kattintson a gombra+.

    Sign in to Azure

A webalkalmazás nevének konfigurálása

Megtarthatja a webalkalmazás létrehozott nevét, vagy módosíthatja egy másik egyedi névre (érvényes karakterek: a-z, 0-9 és -). A webalkalmazás neve az alkalmazás alapértelmezett URL-címének a részeként használatos (<app_name>.azurewebsites.net, amelyben az <app_name> a webalkalmazás neve). A webalkalmazás nevének egyedinek kell lennie az Azure összes alkalmazása tekintetében.

Megjegyzés:

Még ne válassza a Létrehozás lehetőséget.

Create app service dialog

Erőforráscsoport létrehozása

Az erőforráscsoport egy logikai tároló, amelybe az Azure-erőforrásokat, például webalkalmazásokat, adatbázisokat és tárfiókokat helyezik üzembe és felügyelik. Dönthet úgy is például, hogy később egyetlen egyszerű lépésben törli a teljes erőforráscsoportot.

  1. A Resource Group (Erőforráscsoport) mellett kattintson a New (Új) elemre.

    Next to Resource Group, click New.

  2. Adja a myResourceGroup nevet az erőforráscsoportnak.

App Service-csomag létrehozása

Az alkalmazást tároló webkiszolgálófarm helyét, méretét és funkcióit egy App Service-csomag határozza meg. Ha több alkalmazást üzemeltet, pénzt takaríthat meg, ha úgy konfigurálja a webalkalmazásokat, hogy egyetlen App Service-csomagot osszanak meg.

Az App Service-csomagok a következőket határozzák meg:

  • Régió (például: Észak-Európa, az USA keleti régiója vagy Délkelet-Ázsia)
  • Példányméret (kicsi, közepes vagy nagy)
  • Skálázási szám (1–20 példány)
  • Termékváltozat (Ingyenes, Közös, Alapszintű, Standard, Prémium)
  1. Az Üzemeltetési terv mellett kattintson az Új gombra.

  2. Az App Service-csomag konfigurálása párbeszédpanelen konfigurálja az új App Service-csomagot az alábbi beállításokkal, és kattintson az OK gombra:

    Beállítás Ajánlott érték További tudnivalók
    App Service-csomag myAppServicePlan App Service-csomagok
    Tartózkodási hely West Europe Azure-régiók
    Méret Ingyenes Árképzési szintek

    Create App Service plan

  3. Kattintson a Létrehozás gombra, és várja meg az Azure-erőforrások létrehozását.

  4. A Közzététel párbeszédpanelen a konfigurált erőforrások láthatók. Kattintson a Finish (Befejezés) gombra.

    the resources you've created

Kiszolgáló és adatbázis létrehozása

Adatbázis létrehozása előtt logikai SQL-kiszolgálóra van szükség. A logikai SQL-kiszolgáló egy logikai szerkezet, amely csoportként felügyelt adatbáziscsoportot tartalmaz.

  1. A Közzététel párbeszédpanelen görgessen le a Szolgáltatásfüggőségek szakaszhoz. Az SQL Server Database mellett kattintson a Konfigurálás gombra.

    Megjegyzés:

    Mindenképpen konfigurálja az SQL Database-t a Közzététel lapról a Csatlakozás ed Services lap helyett.

    Configure SQL Database dependency

  2. Válassza az Azure SQL Database lehetőséget, és kattintson a Tovább gombra.

  3. Az Azure SQL Database konfigurálása párbeszédpanelen kattintson a gombra+.

  4. Az Adatbázis-kiszolgáló mellett kattintson az Új gombra.

    A rendszer a kiszolgáló alapértelmezett URL-címének részeként használja a kiszolgáló nevét. <server_name>.database.windows.net Az Azure SQL összes kiszolgálója esetében egyedinek kell lennie. Módosítsa a kiszolgáló nevét a kívánt értékre.

  5. Adjon meg egy rendszergazdai felhasználónevet és jelszót. A jelszó „összetettségére” vonatkozó követelményeket a jelszavakra vonatkozó szabályzattal foglalkozó cikkben tekintheti meg.

    Jegyezze meg ezt a felhasználónevet és jelszót. Később szüksége lesz rájuk a kiszolgáló kezeléséhez.

    Create server

    Fontos

    Bár a kapcsolati sztringekban lévő jelszava maszkolva van (a Visual Studióban és az App Service szolgáltatásban is), a tény, hogy valamilyen rendszer tárolja, növeli az alkalmazás támadható felületét. Az App Service megszüntetheti ezt a kockázatot felügyelt szolgáltatásidentitások használatával, feleslegessé téve a titkos kódokat az alkalmazáskonfigurációban. További információ: Következő lépések.

  6. Kattintson az OK gombra.

  7. Az Azure SQL Database párbeszédpanelen tartsa meg az alapértelmezett generált adatbázisnevet. Válassza a Létrehozás lehetőséget , és várja meg, amíg az adatbázis-erőforrások létrejönnek.

    Configure database

Adatbázis-kapcsolat konfigurálása

  1. Ha a varázsló befejezte az adatbázis-erőforrások létrehozását, kattintson a Tovább gombra.

  2. Az Adatbázis kapcsolati sztring neve mezőbe írja be a MyDb Csatlakozás ion nevet. Ennek a névnek meg kell egyeznie a Models/MyDatabaseContext.cs fájlban hivatkozott kapcsolati sztringgel.

  3. Az Adatbázis-kapcsolat felhasználóneve és az Adatbázis-kapcsolat jelszava mezőbe írja be a kiszolgáló létrehozásakor használt rendszergazdai felhasználónevet és jelszót.

  4. Győződjön meg arról, hogy Azure-alkalmazás Gépház ki van jelölve, és kattintson a Befejezés gombra.

    Megjegyzés:

    Ha ehelyett a helyi felhasználói titkos kódfájlokat látja, akkor a Közzététel lap helyett a Csatlakozás szolgáltatások lapon kell konfigurálnia az SQL Database-t.

    Configure database connection string

  5. Várja meg, amíg a konfigurációs varázsló befejeződik, és kattintson a Bezárás gombra.

A ASP.NET alkalmazás üzembe helyezése

  1. A Közzététel lapon görgessen vissza a lap tetejére, és kattintson a Közzététel gombra. Miután üzembe helyezte ASP.NET alkalmazást az Azure-ban. Az alapértelmezett böngésző az üzembe helyezett alkalmazásra mutató URL-címmel indul el.

  2. Adjon hozzá néhány teendőt.

    Published ASP.NET application in Azure app

    Gratulálunk! Az adatvezérelt ASP.NET-alkalmazás fut és elérhető az Azure App Service-ben.

Az adatbázis helyi elérése

A Visual Studio segítségével egyszerűen felfedezheti és kezelheti az új adatbázist az Azure-ban az SQL Server Object Explorerben. Az új adatbázis már megnyitotta a tűzfalát a létrehozott App Service-alkalmazáshoz. A helyi számítógépről (például a Visual Studióból) való hozzáféréshez azonban meg kell nyitnia egy tűzfalat a helyi gép nyilvános IP-címéhez. Ha az internetszolgáltató módosítja a nyilvános IP-címet, újra kell konfigurálnia a tűzfalat az Azure-adatbázis újbóli eléréséhez.

Adatbázis-kapcsolat létrehozása

  1. A View (Nézet) menüben válassza az SQL Server Object Explorer lehetőséget.

  2. Az SQL Server Object Explorer felső részében kattintson az Add SQL Server (SQL Server hozzáadása) gombra.

Az adatbázis-kapcsolat konfigurálása

  1. A Connect (Csatlakozás) párbeszédpanelen bontsa ki az Azure csomópontot. Az Azure-ban található összes SQL Database-példány látható itt.

  2. Válassza ki a korábban létrehozott adatbázist. A korábban létrehozott kapcsolatot a rendszer automatikusan megadja a lap alján.

  3. Írja be a korábban létrehozott adatbázis-rendszergazdai jelszót, és kattintson a Connect (Csatlakozás) elemre.

    Configure database connection from Visual Studio

Ügyfélkapcsolat engedélyezése a számítógépen

Megnyílik a Create a new firewall rule (Új tűzfalszabály létrehozása) párbeszédpanel. Alapértelmezés szerint a kiszolgáló csak az Azure-szolgáltatásokból, például az Azure-alkalmazásból engedélyezi az adatbázisaihoz való kapcsolódást. Ha az Azure-on kívülről szeretne csatlakozni az adatbázishoz, hozzon létre egy tűzfalszabályt a kiszolgáló szintjén. A tűzfalszabály engedélyezi a helyi számítógép nyilvános IP-címét.

A párbeszédpanel már ki van töltve a számítógép nyilvános IP-címével.

  1. Jelölje be az Add my client IP (Ügyfél IP-címének hozzáadása) választógombot, és kattintson az OK gombra.

    Create firewall rule

    Miután a Visual Studio befejezte a tűzfal beállítását az SQL Database-példány számára, a kapcsolat megjelenik az SQL Server Object Explorerben.

    Itt elvégezheti a leggyakoribb adatbázis-műveleteket, például lekérdezések futtatását, nézetek és tárolt eljárások létrehozását és sok minden mást.

  2. Bontsa ki a kapcsolat >adatbázisait<>>>tartalmazó táblákat. Kattintson a jobb gombbal a Todoes táblára, és válassza a View Data (Adatok megtekintése) lehetőséget.

    Explore SQL Database objects

Az alkalmazás frissítése Code First migrálásokkal

A Visual Studio ismerős eszközeit használva frissítheti az adatbázist és az alkalmazást az Azure-ban. Ebben a lépésben Code First migrálásokat használ az Entity Frameworkben az adatbázisséma módosításához, majd annak közzétételéhez az Azure-ban.

Az Entity Framework Code First migrálásainak a használatával kapcsolatos további információkért tekintse meg a Getting Started with Entity Framework 6 Code First using MVC 5 (Ismerkedés az Entity Framework 6 Code First használatával az MVC 5 segítségével) című cikket.

Adatmodell frissítése

A kódszerkesztőben nyissa meg a Models\Todo.cs fájlt. Adja hozzá a következő tulajdonságot a ToDo osztályhoz:

public bool Done { get; set; }

Code First migrálás helyi futtatása

Futtasson néhány parancsot a helyi adatbázis frissítéséhez.

  1. Kattintson a Tools (Eszközök) menü NuGet Package Manager>Package Manager Console (NuGet-csomagkezelő > Csomagkezelő konzol) elemére.

  2. A Package Manager Console (Csomagkezelő konzol) ablakban engedélyezze a Code First migrálásokat:

    Enable-Migrations
    
  3. Migrálás felvétele:

    Add-Migration AddProperty
    
  4. Frissítse a helyi adatbázist:

    Update-Database
    
  5. Az alkalmazás futtatásához nyomja le a Ctrl+F5 billentyűkombinációt. Tesztelje a szerkesztést, a részletek megtekintését és a létrehozást lehetővé tevő hivatkozást.

Ha az alkalmazás betöltése hibák nélkül fejeződik be, a Code First migrálások sikeresek voltak. A lap azonban továbbra is ugyanúgy néz ki, mert az alkalmazáslogika még nem használja ezt az új tulajdonságot.

Az új tulajdonság használata

Hajtson végre néhány módosítást a kódban a Done tulajdonság használatához. Ebben az oktatóanyagban az egyszerűség kedvéért csak az Index és a Create nézetet módosítja, így láthatja a tulajdonságot működés közben.

  1. Nyissa meg a Controllers\TodosController.cs fájlt.

  2. Keresse meg a Create() metódust az 52. sorban, és adja hozzá a Done kifejezést a Bind attribútum tulajdonságlistájához. Amikor végzett, a Create() metódus aláírása a következő kódhoz hasonló:

    public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
    
  3. Nyissa meg a Views\Todos\Create.cshtml fájlt.

  4. A Razor-kódban látnia kell a <div class="form-group"> elemet, amely a model.Description elemet használja, majd egy másik <div class="form-group"> elemet, amely a model.CreatedDate elemet használja. Közvetlenül ezután a két elem után adjon hozzá egy másik <div class="form-group"> elemet, amely a model.Done elemet használja:

    <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>
    
  5. Nyissa meg a Views\Todos\Index.cshtml fájlt.

  6. Keresse meg az üres <th></th> elemet. Az elem felett adja hozzá a következő Razor-kódot:

    <th>
        @Html.DisplayNameFor(model => model.Done)
    </th>
    
  7. Keresse meg a Html.ActionLink() segédmetódusokat tartalmazó <td> elemet. Ezen <td>felett adjon hozzá egy másik <td> elemet a következő Razor-kóddal:

    <td>
        @Html.DisplayFor(modelItem => item.Done)
    </td>
    

    Mást nem kell tennie a módosítások megtekintéséhez az Index és a Create nézetben.

  8. Az alkalmazás futtatásához nyomja le a Ctrl+F5 billentyűkombinációt.

Most hozzáadhat teendőket, és bejelölheti a Kész jelölőnégyzetet. Ezután ennek meg kell jelennie a főoldalon befejezett elemként. Ne feledje, hogy az Edit nézetben nem jelenik meg a Done mező, mivel az Edit nézetet nem módosította.

Code First migrálások engedélyezése az Azure-ban

Most, hogy a kódmódosítás működik, beleértve az adatbázis-migrálást is, közzéteheti az Azure-alkalmazásban, és az SQL Database-t a Code First Migrations használatával is frissítheti.

  1. Fentiekhez hasonlóan kattintson jobb gombbal a projektre, majd válassza a Publish (Közzététel) lehetőséget.

  2. Kattintson a További műveletek>szerkesztése elemre a közzétételi beállítások megnyitásához.

    Open publish settings

  3. A MyDatabaseContext legördülő listában válassza ki az Azure SQL Database adatbázis-kapcsolatát.

  4. Válassza az Execute Code First Migrations (runs on application start) (Code First migrálások végrehajtása (alkalmazásindításakor fut)) elemet, majd kattintson a Save (Mentés) gombra.

    Enable Code First Migrations in Azure app

A módosítások közzététele

Most, hogy engedélyezte a Code First Migrations használatát az Azure-alkalmazásban, tegye közzé a kód módosításait.

  1. A közzétételi oldalon kattintson a Publish (Közzététel) elemre.

  2. Próbálkozzon újabb teendő elemek hozzáadásával, kattintson a Done (Kész) gombra, ami után az elemeknek befejezett elemekként kell megjelenniük a kezdőlapon.

    Azure app after Code First Migration

A meglévő teendők továbbra is megjelennek. A ASP.NET alkalmazás újbóli közzétételekor az SQL Database-ben lévő meglévő adatok nem vesznek el. A Code First migrálások emellett csak az adatsémát módosítják, a meglévő adatokat érintetlenül hagyják.

Alkalmazásnaplók streamelése

A nyomkövetési üzeneteket közvetlenül az Azure-alkalmazásból streamelheti a Visual Studióba.

Nyissa meg a Controllers\TodosController.cs fájlt.

Minden művelet egy Trace.WriteLine() metódussal indul. Ez a kód bemutatja, hogyan adhat hozzá nyomkövetési üzeneteket az Azure-alkalmazáshoz.

Naplóstreamelés engedélyezése

  1. A közzétételi lapon görgessen le az Üzemeltetés szakaszhoz.

  2. A jobb oldali sarokban kattintson a ...>Streamnaplók megtekintése.

    Enable log streaming

    A naplókat mostantól az Output (Kimenet) ablakba streameli a rendszer.

    Log streaming in Output window

    Nem jelennek még azonban meg a nyomkövetési üzenetek. Ennek az az oka, hogy amikor először a Streamelési naplók megtekintése lehetőséget választja, az Azure-alkalmazás beállítja a nyomkövetési szintetError, amely csak a hibaeseményeket naplózza (a Trace.TraceError() módszerrel).

Nyomkövetési szintek módosítása

  1. Ha a nyomkövetési szinteket más nyomkövetési üzenetek kimenetére szeretné módosítani, lépjen vissza a közzétételi lapra.

  2. Az Üzemeltetés szakaszban kattintson a ...>Nyissa meg az Azure Portalon.

  3. Az alkalmazás portálkezelési lapján, a bal oldali menüben válassza az App Service-naplók lehetőséget.

  4. Az Alkalmazásnaplózás (Fájlrendszer) területen válassza a Részletes elemet a Szint területen. Kattintson a Mentés gombra.

    Tipp.

    Kísérletezhet a különböző szintű nyomkövetésekkel, hogy lássa, milyen típusú üzenetek jelennek meg az egyes szintek esetén. Az Information (Tájékoztatás) szint a Trace.TraceInformation(), Trace.TraceWarning() és Trace.TraceError() által létrehozott naplók mindegyikét tartalmazza, a Trace.WriteLine() által létrehozott naplókat azonban nem.

  5. A böngészőben lépjen ismét az alkalmazáshoz az http://< your app name.azurewebsites.net> címen, majd kattintson az Azure teendőlista-alkalmazására. A nyomkövetési üzeneteket mostantól a Visual Studio Output (Kimenet) ablakába streameli a rendszer.

    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
    

Naplóstreamelés leállítása

A naplóstreamelési szolgáltatás leállításához kattintson az Output (Kimenet) ablak Stop monitoring (Megfigyelés leállítása) gombjára.

Stop log streaming

Clean up resources

Az előző lépésekben Azure-erőforrásokat hozott létre egy erőforráscsoportban. Ha várhatóan nincs szüksége ezekre az erőforrásokra a későbbiekben, az erőforráscsoport eltávolításával törölheti őket.

  1. Az Azure Portalon a webalkalmazás Áttekintés lapján válassza az Erőforráscsoport szakasz myResourceGroup hivatkozását.
  2. Az erőforráscsoport lapján ellenőrizze, hogy a felsorolt erőforrásokat szeretné-e törölni.
  3. Válassza a Törlés elemet, írja be a myResourceGroup kifejezést a szövegmezőbe, majd válassza a Törlés elemet.

Következő lépések

Ez az oktatóanyag bemutatta, hogyan végezheti el az alábbi műveleteket:

  • Adatbázis létrehozása az Azure SQL Database-ben
  • ASP.NET-alkalmazás csatlakoztatása SQL Database-adatbázishoz
  • Az alkalmazás üzembe helyezése az Azure-ban
  • Az adatmodell frissítése és az alkalmazás ismételt üzembe helyezése
  • Naplók streamelése az Azure-ból a saját terminálba

A következő oktatóanyag azt mutatja be, hogyan növelheti könnyedén az Azure SQL Database szolgáltatással létrehozott kapcsolat biztonságát.

További források:

Optimalizálni és menteni szeretné a felhőbeli kiadásait?