Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure App Service oferuje wysoce skalowalną i samonaprawialną usługę hostingu w Internecie. W tym samouczku pokazano, jak wdrożyć opartą na danych aplikację ASP.NET w usłudze App Service i połączyć ją z usługą Azure SQL Database.
Po ukończeniu samouczka masz aplikację ASP.NET połączoną z bazą danych Azure SQL Database działającą na platformie Azure. W poniższym przykładzie pokazano interfejs aplikacji.
W tym samouczku nauczysz się następujących rzeczy:
- Publikowanie aplikacji internetowej opartej na danych na platformie Azure.
- Utwórz bazę danych Azure SQL Database do przechowywania danych aplikacji.
- Połącz aplikację ASP.NET z bazą danych Azure SQL Database.
- Skonfiguruj zarządzaną tożsamość i uwierzytelnianie Microsoft Entra ID dla połączenia z bazą danych.
- Zaktualizuj model danych i ponownie wdróż aplikację.
- Przesyłanie strumieniowe dzienników aplikacji z platformy Azure do programu Visual Studio.
Wymagania wstępne
- Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Zainstaluj program Visual Studio 2022 przy użyciu obciążeń ASP.NET i tworzenia aplikacji internetowych oraz tworzenia aplikacji na platformie Azure.
- Obciążenia można dodać do istniejącej instalacji programu Visual Studio, wybierając pozycję Pobierz narzędzia i funkcje w menu Narzędzia programu Visual Studio.
- Upewnij się, że masz najnowsze aktualizacje programu Visual Studio 2022, wybierając pozycję Sprawdzanie pomocy> pod kątemaktualizacji i instalując najnowszą wersję w razie potrzeby.
Tworzenie i uruchamianie aplikacji
Przykładowy projekt zawiera ASP.NET podstawową aplikację MVC create-read-update-delete (CRUD), która korzysta z aplikacji Entity Framework Code First.
Pobierz przykładowy projekt i wyodrębnij plik dotnet-sqldb-tutorial-master.zip .
Otwórz wyodrębniony plik dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln w programie Visual Studio.
Naciśnij F5 , aby uruchomić aplikację i otworzyć ją w domyślnej przeglądarce.
Uwaga
W razie potrzeby zainstaluj brakujące pakiety NuGet.
W aplikacji wybierz pozycję Utwórz nowy i utwórz kilka to-do elementów.
Przetestuj linki Edytuj, Szczegóły i Usuń.
Publikowanie aplikacji na platformie Azure
Aby opublikować aplikację na platformie Azure, należy utworzyć i skonfigurować profil publikacji, który zawiera usługę Azure App Service oraz plan usługi App Service, aby hostować aplikację. Następnie utworzysz program Azure SQL Server i bazę danych Azure SQL Database, aby zawierał dane aplikacji, i skonfigurujesz kontekst bazy danych w celu połączenia aplikacji z bazą danych.
W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy projekt DotNetAppSqlDb i wybierz polecenie Publikuj.
Na ekranie Publikowanie wybierz pozycję Azure jako element docelowy, a następnie wybierz pozycję Dalej.
Na następnym ekranie upewnij się, że wybrano pozycję Azure App Service (Windows), a następnie wybierz pozycję Dalej.
Logowanie się i dodawanie usługi Azure App Service
Na następnym ekranie Publikowanie zaloguj się do konta Microsoft i subskrypcji, której chcesz użyć.
Obok pozycji App Service wybierz pozycję Utwórz nową.
Konfigurowanie usługi Azure App Service
Na ekranie App Service (Windows) skonfiguruj nazwę usługi App Service, grupę zasobów i plan hostingu.
W obszarze Nazwa możesz zachować wygenerowaną nazwę aplikacji internetowej lub zmienić ją na inną nazwę z znakami
a-z
,0-9
i-
. Nazwa aplikacji internetowej musi być unikatowa we wszystkich aplikacjach platformy Azure.Obok pozycji Grupa zasobów wybierz pozycję Nowy i nadaj grupie zasobów nazwę myResourceGroup.
Grupa zasobów to logiczny kontener, w którym są wdrażane i zarządzane zasoby platformy Azure, takie jak aplikacje internetowe, bazy danych i konta magazynu. Na przykład można później usunąć całą grupę zasobów w jednym prostym kroku.
Obok pozycji Plan hostingu wybierz pozycję Nowy.
Plan usługi App Service określa lokalizację, rozmiar i funkcje farmy serwerów sieci Web, która jest hostem aplikacji. Możesz zaoszczędzić pieniądze podczas hostowania wielu aplikacji, konfigurując aplikacje internetowe w celu udostępnienia jednego planu usługi App Service.
Plany usługi App Service definiują następujące elementy:
- Region (na przykład: Europa Północna, wschodnie stany USA, Azja Południowo-Wschodnia)
- Rozmiar wystąpienia (mały, średni, duży)
- Skala (od 1 do 20 wystąpień)
- Warstwa cenowa (Bezpłatna, Współdzielona, Podstawowa, Standardowa, Premium)
Ukończ ekran Plan hostingu , a następnie wybierz przycisk OK.
Ustawienie Sugerowana wartość Więcej informacji Plan usługi App Service myAppServicePlan Plany usługi App Service Lokalizacja Wschodnie stany USA Regiony platformy Azure Rozmiar Bezpłatna Warstwy cenowe Na ekranie App Service (Windows) wybierz pozycję Utwórz i poczekaj na utworzenie zasobów platformy Azure.
Na ekranie Publikowanie są wyświetlane skonfigurowane zasoby. Kliknij przycisk Zakończ, a następnie kliknij polecenie Zamknij.
Tworzenie serwera i bazy danych
Przed utworzeniem bazy danych potrzebny jest logiczny serwer SQL. Logiczny serwer SQL to konstrukcja logiczna zawierająca grupę baz danych zarządzanych jako grupa.
Na ekranie Publikowanie aplikacji DotNetAppSqlDb w sekcji Zależności usługi wybierz wielokropek ... obok pozycji Baza danych programu SQL Server, a następnie wybierz pozycję Połącz.
Uwaga
Pamiętaj, aby skonfigurować usługę SQL Database na karcie Publikowanie , a nie kartę Połączone usługi .
Na ekranie Łączenie z zależnością wybierz pozycję Azure SQL Database , a następnie wybierz pozycję Dalej.
Na ekranie Konfigurowanie usługi Azure SQL Database wybierz pozycję Utwórz nową.
Na ekranie usługi Azure SQL Database obok pozycji Serwer bazy danych wybierz pozycję Nowy.
Zmień nazwę serwera na odpowiednią wartość. Nazwa serwera musi być unikatowa na wszystkich serwerach w usłudze Azure SQL.
Kliknij przycisk OK.
Na ekranie usługi Azure SQL Database zachowaj domyślną wygenerowaną nazwę bazy danych. Wybierz pozycję Utwórz i poczekaj na utworzenie zasobów bazy danych.
Po utworzeniu zasobów bazy danych wybierz pozycję Dalej.
Na ekranie Łączenie z usługą Azure SQL Database wybierz pozycję Zakończ.
Uwaga
Jeśli zamiast tego widzisz pliki tajnych wpisów użytkownika lokalnego, upewnij się, że użyto strony Publikowanie, a nie strony Usługi połączone do konfiguracji bazy danych SQL.
Połączenie z bazą danych Azure SQL jest teraz skonfigurowane do używania tożsamości zarządzanej dla usług platformy Azure. Jest to bezpieczna metoda łączenia aplikacji z zasobami platformy Azure, która nie wymaga użycia sekretów ani haseł. Teraz należy ustawić odpowiednie uprawnienia dla użytkownika SQL odpowiadającego tej tożsamości zarządzanej, aby połączenie działało.
Konfigurowanie tożsamości zarządzanej
Gdy kreator tworzenia usługi Azure SQL Database skonfiguruje serwer Azure SQL z tożsamością zarządzaną i domyślnym uwierzytelnianiem Entra ID, dodało twoje konto Entra ID jako administratora usługi Azure SQL. Jeśli jesteś zalogowany do tego samego konta w Visual Studio, możesz użyć tej samej nici połączenia, aby połączyć się z bazą danych zarówno w Visual Studio, jak i w Azure.
W menu Narzędzia wybierz NuGet Menedżer pakietów>Konsola Menedżera pakietów.
W konsoli Menedżera pakietów zainstaluj następujące pakiety:
Install-Package Microsoft.Data.SqlClient Install-Package Microsoft.EntityFramework.SqlServer
W wierszu poleceń PowerShell uruchom następującą komendę, aby zalogować się do usługi bazy danych SQL, zastępując
<server-name>
nazwą serwera i<entra-id-user>
nazwą użytkownika Microsoft Entra, którą użyłeś do konfiguracji bazy danych w programie Visual Studio. Ten użytkownik Entra ma domyślnie dostęp administratora do serwera bazy danych.sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30
Postępuj zgodnie z monitami, aby się zalogować.
W wierszu polecenia SQL uruchom następujące polecenia, aby udzielić minimalnych uprawnień wymaganych przez aplikację, zastępując
<app-name>
nazwą aplikacji.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
Aktualizowanie kontekstu bazy danych
Aplikacja używa kontekstu bazy danych do nawiązywania połączenia z bazą danych, do której odwołuje się plik Models/MyDatabaseContext.cs . W tej sekcji zaktualizujesz kod, aby odwoływać się do dostawcy SQL Server dla Entity Framework 6, który zależy od nowoczesnego dostawcy ADO.NET Microsoft.Data.SqlClient.
Dostawca Entity Framework 6 zastępuje wbudowanego System.Data.SqlClient
providera SQL Server i zawiera wsparcie dla metod uwierzytelniania Microsoft Entra ID. Aby uzyskać więcej informacji, zobacz Microsoft.EntityFramework.SqlServer}.
[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))]
działa lokalnie, aby korzystać z Microsoft.Data.SqlClient
jako kontekstu bazy danych, ale ponieważ System.Data.SqlClient
jest na stałe ustawiony jako dostawca w usłudze Azure App Service, musisz rozszerzyć MicrosoftSqlDbConfiguration
, aby przekierować referencje z System.Data.SqlClient
na Microsoft.Data.SqlClient
.
W web.configusuń sekcję
entityFramework/providers/provider
i wiersz:<provider invariantName="System.Data.SqlClient" .../>
.W obszarze Modele/MyDatabaseContext.cs dodaj następującą klasę:
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()); } }
Dodaj następujący atrybut do deklaracji
MyDatabaseContext
klasy:[DbConfigurationType(typeof(AppServiceConfiguration))]
Wdrażanie aplikacji ASP.NET
W górnej części karty Publikowanie wybierz pozycję Publikuj. Aplikacja ASP.NET zostanie wdrożona na platformie Azure, a domyślna przeglądarka zostanie uruchomiona pod adresem URL wdrożonej aplikacji.
Aby przetestować aplikację, dodaj kilka to-do elementów.
Gratulacje! Twoja oparta na danych aplikacja ASP.NET działa w usłudze Azure App Service.
Korzystanie z Eksploratora obiektów programu SQL Server
Eksplorator obiektów programu Visual Studio SQL Server umożliwia łatwe eksplorowanie bazy danych Azure SQL Database i zarządzanie nią. W Eksploratorze obiektów programu SQL Server można wykonywać najbardziej typowe operacje bazy danych, takie jak uruchamianie zapytań lub tworzenie tabel, widoków i procedur składowanych.
Zezwalanie na połączenia klienckie z komputera
Domyślnie serwer platformy Azure zezwala na połączenia ze swoimi bazami danych tylko z usług platformy Azure, takich jak aplikacja platformy Azure. Nowa baza danych otworzyła swoją zaporę sieciową dla utworzonej aplikacji App Service.
Aby uzyskać dostęp do bazy danych z komputera lokalnego, na przykład z programu Visual Studio, serwer platformy Azure musi otworzyć zaporę, aby zezwolić na dostęp do publicznego adresu IP maszyny.
Jeśli zostanie wyświetlony monit o dodanie dostępu dla klienta lokalnego, wybierz opcję Zezwalaj na publiczny adres IP komputera. Ta opcja tworzy regułę zapory, aby zezwolić na publiczny adres IP komputera lokalnego. Okno dialogowe jest już wypełnione bieżącym adresem IP komputera.
Jeśli nie zostanie wyświetlony monit o dodanie dostępu dla komputera lokalnego, możesz przejść do bazy danych Azure SQL Database w witrynie Azure Portal i wybrać pozycję Ustaw zaporę serwera na górnym pasku menu. Na stronie Sieć w obszarze Reguły zapory wybierz opcję Dodaj adres IPv4 klienta.
Uwaga
Jeśli dostawca usług internetowych zmieni publiczny adres IP, musisz ponownie skonfigurować zaporę, aby ponownie uzyskać dostęp do bazy danych platformy Azure.
Nawiązywanie połączenia z bazą danych Azure SQL Database lokalnie
Z menu Widok wybierz opcję Eksplorator obiektów SQL Server.
W górnej części okna Eksplorator obiektów programu SQL Server wybierz ikonę Dodaj program SQL Server.
Na ekranie Połącz twoje połączenie jest wyświetlone w węźle Azure. Wypełnij informacje dotyczące nazwy serwera, nazwy użytkownika, hasła i nazwy bazy danych, a następnie wybierz pozycję Połącz.
Gdy program Visual Studio zakończy konfigurowanie połączenia dla wystąpienia usługi SQL Database, baza danych zostanie wyświetlona w Eksploratorze obiektów programu SQL Server. Rozwiń <nazwę połączenia>>Bazy danych><nazwę bazy danych>> aby wyświetlić dane.
Rozwiń węzeł Tabele, kliknij prawym przyciskiem myszy tabelę
ToDoes
i wybierz pozycję Wyświetl dane , aby wchodzić w interakcje z danymi bazy danych.
Aktualizowanie aplikacji za pomocą migracji Code First
Aby zaktualizować bazę danych i aplikację na platformie Azure, możesz użyć znanych narzędzi w programie Visual Studio. W tym kroku użyjesz migracji Code First w programie Entity Framework, aby zmienić schemat bazy danych i opublikować zmianę na platformie Azure.
Aby uzyskać więcej informacji o używaniu migracji Code First platformy Entity Framework, zobacz Getting Started with Entity Framework 6 Code First using MVC 5 (Wprowadzenie do migracji Code First platformy Entity Framework 6 za pomocą MVC 5).
Aktualizowanie modelu danych
Otwórz plik Models\Todo.cs w edytorze kodu. Dodaj następującą właściwość do klasy ToDo
:
public bool Done { get; set; }
Lokalne uruchamianie migracji Code First
Uruchom kilka poleceń, aby zastosować aktualizacje w lokalnej bazie danych.
W menu Narzędzia wybierz NuGet Menedżer pakietów>Konsola Menedżera pakietów.
W oknie Konsola menedżera pakietów włącz funkcję Migracje Code First:
Enable-Migrations
Dodaj migrację:
Add-Migration AddProperty
Zaktualizuj lokalną bazę danych:
Update-Database
Naciśnij Ctrl+F5 , aby uruchomić aplikację. Przetestuj linki Edytuj, Szczegóły i Utwórz nowe .
Jeśli aplikacja ładuje się bez błędów, migracje Code First powiodły się. Jednak strona nadal wygląda tak samo, ponieważ logika aplikacji nie korzysta jeszcze z tej nowej właściwości.
Używanie nowej właściwości
Wprowadź zmiany w kodzie, aby zobaczyć właściwość Done
w działaniu. W tym samouczku zmienisz tylko widoki Index
i Create
, aby używały nowej właściwości.
Otwórz plik Controllers\TodosController.cs, a w metodzie
Create()
w wierszu 52 dodajDone
do listy właściwości w atrybucieBind
. SygnaturaCreate()
metody powinna wyglądać podobnie do następującego kodu:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
Otwórz plik Views\Todos\Create.cshtml, a następnie w kodzie Razor zanotuj
<div class="form-group">
element, który używamodel.Description
, i<div class="form-group">
element, który używamodel.CreatedDate
.Po tych dwóch elementach dodaj następujący
<div class="form-group">
element, który używamodel.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>
Otwórz plik Views\Todos\Index.cshtml i tuż nad pustym
<th></th>
elementem dodaj następujący kod Razor:<th> @Html.DisplayNameFor(model => model.Done) </th>
Nad elementem
<td>
, który zawiera metody pomocniczeHtml.ActionLink()
, dodaj kolejny element<td>
z następującym kodem Razor:<td> @Html.DisplayFor(modelItem => item.Done) </td>
Zapisz wszystkie pliki i naciśnij Ctrl+F5 , aby uruchomić aplikację.
W aplikacji dodaj element to-do i wybierz pozycję Gotowe. Element powinien pojawić się na stronie głównej jako ukończony element. Widok Edycja nie pokazuje pola Gotowe , ponieważ nie zmieniono widoku Edycja .
Włączanie funkcji Migracje Code First na platformie Azure
Teraz, gdy zmiana kodu działa, w tym migracja bazy danych, możesz opublikować ją w aplikacji platformy Azure i zaktualizować bazę danych Azure SQL Database za pomocą funkcji Code First Migrations.
W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy projekt i wybierz polecenie Publikuj.
Wybierz pozycję Więcej akcji>Edytuj , aby otworzyć ustawienia publikowania.
Na liście rozwijanej MyDatabaseContext wybierz połączenie dla bazy danych Azure SQL.
Wybierz pozycję Wykonaj migracje Code First (uruchamiane przy uruchomieniu aplikacji), a następnie wybierz pozycję Zapisz.
Publikowanie zmian
Teraz, po włączeniu funkcji Migracje Code First w aplikacji platformy Azure, opublikuj zmiany kodu.
Na stronie Publikacja wybierz pozycję Publikuj.
W opublikowanej aplikacji internetowej spróbuj ponownie dodać więcej to-do elementów i wybrać pozycję Gotowe. Powinny one być wyświetlane na stronie głównej jako ukończone elementy.
Nadal wyświetlane są wszystkie istniejące elementy do wykonania. Po ponownej opublikowaniu aplikacji ASP.NET istniejące dane w bazie danych Azure SQL Database nie zostaną utracone. Ponadto migracje Code First zmieniają tylko schemat danych i pozostawiają dane bez zmian.
Przesyłanie strumieniowe dzienników aplikacji
Komunikaty dotyczące śledzenia można przesyłać strumieniowo bezpośrednio z aplikacji platformy Azure do programu Visual Studio.
Otwórz plik Controllers\TodosController.cs i zwróć uwagę, że każda Trace.WriteLine()
akcja rozpoczyna się od metody . Ten kod pokazuje, jak dodać komunikaty śledzenia do aplikacji platformy Azure.
Włączanie przesyłania strumieniowego dzienników
Na stronie Publikowanie programu Visual Studio przewiń w dół do sekcji Hosting .
Wybierz wielokropek ... w prawym górnym rogu i wybierz pozycję Wyświetl dzienniki przesyłania strumieniowego.
Dzienniki są teraz przesyłane strumieniowo do okna Dane wyjściowe.
Nie widzisz jeszcze żadnych komunikatów śledzenia, ponieważ po pierwszym wybraniu pozycji Wyświetl dzienniki przesyłania strumieniowego aplikacja platformy Azure ustawia poziom śledzenia na
Error
, który rejestruje tylko zdarzenia błędów przy użyciuTrace.TraceError()
metody .
Zmienianie poziomu śledzenia
Aby zmienić poziomy śledzenia, aby wyświetlać inne komunikaty śledzenia, w sekcji Hosting na stronie Publikowanie wybierz ikonę ... w prawym górnym rogu, a następnie wybierz pozycję Otwórz w portalu Azure.
Na stronie portalu Azure dla swojej aplikacji wybierz pozycję Dzienniki usługi App Service w obszarze Monitorowanie w menu po lewej stronie.
W obszarze Rejestrowanie aplikacji (system plików) wybierz pozycję Pełne w obszarze Poziom, a następnie wybierz pozycję Zapisz.
Napiwek
Możesz eksperymentować z różnymi poziomami śledzenia, aby zobaczyć, jakie rodzaje komunikatów są wyświetlane dla poszczególnych poziomów. Na przykład na poziomie Informacyjne dostępne są wszystkie dzienniki utworzone za pomocą metod
Trace.TraceInformation()
,Trace.TraceWarning()
iTrace.TraceError()
, ale niedostępne są dzienniki utworzone za pomocą metodyTrace.WriteLine()
.W przeglądarce przejdź ponownie do aplikacji listy to-do w platformie Azure i poruszaj się po aplikacji. Komunikaty śledzenia podobne do poniższych przykładów są teraz przesyłane strumieniowo do okna Dane wyjściowe w programie 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
Zatrzymywanie przesyłania strumieniowego dzienników
Aby zatrzymać usługę przesyłania strumieniowego dzienników, wybierz ikonę Zatrzymaj monitorowanie w oknie Dane wyjściowe .
Czyszczenie zasobów
W poprzednich krokach utworzono zasoby platformy Azure w grupie zasobów. Jeśli nie będziesz już potrzebować tych zasobów w przyszłości, możesz je usunąć przez usunięcie grupy zasobów.
- W witrynie Azure Portal na stronie Przegląd aplikacji internetowej wybierz link myResourceGroup w obszarze Grupa zasobów.
- Na stronie grupy zasobów upewnij się, że zasoby na liście są tymi, które chcesz usunąć.
- Wybierz pozycję Usuń grupę zasobów, wpisz myResourceGroup w polu tekstowym, a następnie wybierz pozycję Usuń.
- Potwierdź ponownie, wybierając pozycję Usuń.
Treści powiązane
- Konfigurowanie aplikacji ASP.NET dla usługi Azure App Service
- Szybki start: rozpoczęcie korzystania z analizy kosztów
Przejdź do następnego samouczka, aby dowiedzieć się, jak używać tożsamości zarządzanej w celu poprawy zabezpieczeń połączeń usługi Azure SQL Database.