Wdrażanie aplikacji ASP.NET Core w usłudze Azure App Service

Azure App Service to usługa platformy przetwarzania w chmurze firmy Microsoft umożliwiająca hostowanie aplikacji internetowych, w tym aplikacji ASP.NET Core.

Niezawodne wzorce aplikacji internetowej

Aby uzyskać wskazówki dotyczące tworzenia nowoczesnej, niezawodnej, wydajnej, wydajnej, ekonomicznej i skalowalnej aplikacji ASP.NET Core, od podstaw lub refaktoryzacji istniejącej aplikacji, zobacz Niezawodny wzorzecaplikacji internetowej for.NET YouTube.

Użyteczne zasoby

Dokumentacja usługi App Service zawiera dokumenty, samouczki, przykłady, przewodniki i inne zasoby dotyczące aplikacji platformy Azure. Dwa istotne samouczki dotyczące hostowania aplikacji ASP.NET Core to:

Tworzenie aplikacji internetowej ASP.NET Core na platformie Azure
Tworzenie i wdrażanie aplikacji internetowej ASP.NET Core w usłudze Azure App Service dla systemu Windows przy użyciu programu Visual Studio.

Tworzenie aplikacji ASP.NET Core w usłudze App Service dla systemu Linux
Tworzenie i wdrażanie aplikacji internetowej ASP.NET Core w usłudze Azure App Service dla systemu Linux przy użyciu wiersza polecenia.

Zobacz Pulpit nawigacyjny dotyczący platformy ASP.NET Core w usłudze App Service, aby sprawdzić wersję platformy ASP.NET Core dostępną w usłudze Azure App Service.

Zasubskrybuj repozytorium App Service Announcements (Ogłoszenia dotyczące usługi App Service), aby monitorować problemy. Zespół usługi App Service regularnie publikuje ogłoszenia i scenariusze dotyczące usługi App Service.

W dokumentacji dotyczącej platformy ASP.NET Core dostępne są następujące artykuły:

Publikowanie aplikacji ASP.NET Core na platformie Azure przy użyciu programu Visual Studio
Dowiedz się, jak opublikować aplikację ASP.NET Core w usłudze Azure App Service przy użyciu programu Visual Studio.

Tworzenie pierwszego potoku
Skonfiguruj kompilację ciągłej integracji dla aplikacji ASP.NET Core, a następnie utwórz wydanie ciągłego wdrażania w usłudze Azure App Service.

Piaskownika aplikacji internetowych platformy Azure
Poznaj ograniczenia wykonywania środowiska uruchomieniowego usługi Azure App Service wymuszane przez platformę aplikacji platformy Azure.

Rozwiązywanie problemów i debugowanie projektów ASP.NET Core
Informacje na temat ostrzeżeń i błędów w projektach ASP.NET Core oraz rozwiązywania problemów.

Konfiguracja aplikacji

Platforma

Architekturę platformy (x86/x64) aplikacji usługi App Service określa się w ustawieniach aplikacji w witrynie Azure Portal w przypadku aplikacji hostowanych w warstwie z zasobami obliczeniowymi serii A (Podstawowa) lub w wyższej warstwie hostingu. Upewnij się, że ustawienia publikowania aplikacji (na przykład w profilu publikowania (pubxml) w programie Visual Studio) są zgodne z ustawieniami w konfiguracji usługi App Service w witrynie Azure Portal.

W usłudze Azure App Service są dostępne środowiska uruchomieniowe dla aplikacji 64-bitowych (x64) i 32-bitowych (x86). Zestaw .NET Core SDK dostępny w usłudze App Service jest 32-bitowy, ale można wdrażać aplikacje 64-bitowe tworzone lokalnie za pomocą konsoli Kudu lub procesu publikowania programu Visual Studio. Aby uzyskać więcej informacji, zobacz sekcję Publikowanie i wdrażanie aplikacji.

W przypadku aplikacji z natywnymi zależnościami w usłudze App Service są dostępne środowiska uruchomieniowe dla aplikacji 32-bitowych (x86). Zestaw .NET Core SDK dostępny w usłudze App Service jest 32-bitowy.

Aby uzyskać więcej informacji na temat składników i metod dystrybucji platformy .NET Core, w tym informacje na temat środowiska uruchomieniowego platformy .NET Core i zestawu .NET Core SDK, zobacz Informacje o platformie .NET Core: składniki.

Pakiety

Uwzględnij następujące pakiety NuGet, aby zapewnić funkcje automatycznego rejestrowania dla aplikacji wdrożonych w usłudze Azure App Service:

Należy utworzyć jawne odwołania do powyższych pakietów w pliku projektu aplikacji.

Zastępowanie konfiguracji aplikacji przy użyciu witryny Azure Portal

Ustawienia aplikacji w witrynie Azure Portal umożliwiają określanie zmiennych środowiskowych dla aplikacji. Zmienne środowiskowe mogą być używane przez dostawcę konfiguracji zmiennych środowiskowych.

Po utworzeniu lub zmianie ustawienia aplikacji w witrynie Azure Portal i wybraniu przycisku Zapisz aplikacja platformy Azure jest uruchamiana ponownie. Po ponownym uruchomieniu usługi zmienna środowiskowa będzie dostępna dla aplikacji.

Jeżeli aplikacja korzysta z hosta ogólnego, zmienne środowiskowe są ładowane do konfiguracji aplikacji po wywołaniu metody CreateDefaultBuilder w celu skompilowania hosta. Aby uzyskać więcej informacji, zobacz Host ogólny platformy .NET w środowisku ASP.NET Core i Dostawca konfiguracji zmiennych środowiskowych.

Ustawienia aplikacji w witrynie Azure Portal umożliwiają określanie zmiennych środowiskowych dla aplikacji. Zmienne środowiskowe mogą być używane przez dostawcę konfiguracji zmiennych środowiskowych.

Po utworzeniu lub zmianie ustawienia aplikacji w witrynie Azure Portal i wybraniu przycisku Zapisz aplikacja platformy Azure jest uruchamiana ponownie. Po ponownym uruchomieniu usługi zmienna środowiskowa będzie dostępna dla aplikacji.

Jeżeli aplikacja korzysta z hosta internetowego, zmienne środowiskowe są ładowane do konfiguracji aplikacji po wywołaniu metody CreateDefaultBuilder w celu skompilowania hosta. Aby uzyskać więcej informacji, zobacz Host internetowy platformy ASP.NET Core i Dostawca konfiguracji zmiennych środowiskowych.

Scenariusze dotyczące serwera proxy i modułu równoważenia obciążenia

Oprogramowanie pośredniczące integracji usług IIS, które konfiguruje oprogramowanie pośredniczące przekazywania nagłówków podczas hostowania poza procesem oraz moduł ASP.NET Core Module są skonfigurowane do przekazywania schematu (HTTP/HTTPS) i zdalnego adresu IP, z którego pochodzi żądanie. Dodatkowa konfiguracja może być wymagana w przypadku aplikacji hostowanych za dodatkowymi serwerami proxy i modułami równoważenia obciążenia. Aby uzyskać więcej informacji, zobacz Konfigurowanie platformy ASP.NET Core pod kątem pracy z serwerami proxy i modułami równoważenia obciążenia.

Monitorowanie i rejestrowanie

Aplikacje ASP.NET Core wdrożone w usłudze App Service automatycznie otrzymują rozszerzenie usługi App Service ASP.NET Core Logging Integration. To rozszerzenie umożliwia integrację rejestrowania w przypadku aplikacji ASP.NET Core w usłudze Azure App Service.

Aplikacje ASP.NET Core wdrożone w usłudze App Service automatycznie otrzymują rozszerzenie usługi App Service ASP.NET Core Logging Extensions. To rozszerzenie umożliwia integrację rejestrowania w przypadku aplikacji ASP.NET Core w usłudze Azure App Service.

Informacje dotyczące monitorowania, rejestrowania i rozwiązywania problemów można znaleźć w następujących artykułach:

Monitorowanie aplikacji w usłudze Azure App Service
Dowiedz się, jak przeglądać limity przydziału i metryki dla aplikacji i planów usługi App Service.

Włączanie rejestrowania diagnostyki dla aplikacji w usłudze Azure App Service
Dowiedz się, jak włączyć rejestrowanie diagnostyczne pod kątem kodów stanu HTTP, niepowodzeń żądań i aktywności na serwerze internetowym oraz uzyskać dostęp do dzienników.

Obsługa błędów w środowisku ASP.NET Core
Poznaj typowe podejścia do obsługi błędów w aplikacjach ASP.NET Core.

Rozwiązywanie problemów z typowymi błędami platformy ASP.NET Core w usłudze Azure App Service i usługach IIS
Dowiedz się, jak diagnozować problemy z wdrożeniami aplikacji ASP.NET Core w usłudze Azure App Service.

Rozwiązywanie problemów z typowymi błędami platformy ASP.NET Core w usłudze Azure App Service i usługach IIS
Zapoznaj się z typowymi błędami konfiguracji wdrażania w przypadku aplikacji hostowanych przez usługi Azure App Service i IIS oraz z poradami dotyczącymi rozwiązywania problemów.

Pierścień kluczy ochrony danych i miejsca wdrożenia

Klucze ochrony danych są trwale zapisywane w folderze %HOME%\ASP.NET\DataProtection-Keys. Ten folder jest oparty na magazynie sieciowym i synchronizowany na wszystkich maszynach hostujących aplikację. Klucze nie są chronione podczas przechowywania. Ten folder udostępnia pierścień kluczy na potrzeby wszystkich wystąpień aplikacji w jednym miejscu wdrożenia. Oddzielne miejsca wdrożenia, takie jak środowisko przejściowe i produkcyjne, nie mają wspólnego pierścienia kluczy.

Po zamianie miejsc wdrożenia żaden system korzystający z ochrony danych nie będzie mógł odszyfrować przechowywanych danych przy użyciu pierścienia kluczy z poprzedniego miejsca. Oprogramowanie pośredniczące plików Cookie platformy ASP.NET korzysta z funkcji ochrony danych do ochrony plików cookie. Prowadzi to do wylogowywania użytkowników z aplikacji korzystających ze standardowego oprogramowania pośredniczącego plików Cookie platformy ASP.NET. Aby utworzyć rozwiązanie pierścienia kluczy niezależnego od miejsca, skorzystaj z zewnętrznego dostawcy pierścienia kluczy, takiego jak:

  • Azure Blob Storage
  • Azure Key Vault
  • Magazyn SQL
  • Redis Cache

Aby uzyskać więcej informacji, zobacz Dostawcy magazynu kluczy dla platformy ASP.NET Core.

Wdrażanie aplikacji ASP.NET Core korzystającej z wersji zapoznawczej platformy .NET Core

Aby wdrożyć aplikację korzystającą z wersji zapoznawczej platformy .NET Core, zapoznaj się z następującymi zasobami. Te metody są również używane, jeśli środowisko uruchomieniowe jest dostępne, ale w usłudze Azure App Service nie zainstalowano zestawu SDK.

Zobacz Pulpit nawigacyjny dotyczący platformy ASP.NET Core w usłudze App Service, aby sprawdzić wersję platformy ASP.NET Core dostępną w usłudze Azure App Service.

Zobacz Wybieranie wersji platformy .NET Core do użycia, aby zapoznać się z informacjami na temat wyboru wersji zestawu .NET SDK dla wdrożeń niezależnych.

Określanie wersji zestawu .NET Core SDK przy użyciu usługi Azure Pipelines

Skorzystaj ze scenariuszy ciągłej integracji/ciągłego wdrażania w usłudze Azure App Service, aby skonfigurować kompilację ciągłej integracji przy użyciu usługi Azure DevOps. Po utworzeniu kompilacji usługi Azure DevOps możesz opcjonalnie skonfigurować tę kompilację pod kątem użycia konkretnej wersji zestawu SDK.

Określanie wersji zestawu .NET Core SDK

W przypadku tworzenia kompilacji usługi Azure DevOps przy użyciu centrum wdrażania usługi App Service domyślny potok kompilacji obejmuje kroki Restore, Build, Test i Publish. Aby określić wersję zestawu SDK, wybierz przycisk Dodaj (+) na liście zadań agenta i dodaj nowy krok. Na pasku wyszukiwania wyszukaj .NET Core SDK.

Add the .NET Core SDK step

Przenieś ten krok na pierwszą pozycję w kompilacji, tak aby w kolejnych krokach była używana wskazana wersja zestawu .NET Core SDK. Określ wersję zestawu .NET Core SDK. W tym przykładzie ustawiono wersję zestawu SDK 3.0.100.

Completed SDK step

Aby opublikować wdrożenie niezależne (self-contained deployment, SCD), skonfiguruj je w kroku Publish i podaj identyfikator środowiska uruchomieniowego (RID).

Self-contained publish

Wdrażanie niezależnej aplikacji w wersji zapoznawczej

Wdrożenie niezależne (SCD) z określonym środowiskiem uruchomieniowym w wersji zapoznawczej zawiera to środowisko uruchomieniowe w wersji zapoznawczej.

W przypadku wdrażania niezależnej aplikacji:

Postępuj zgodnie ze wskazówkami w sekcji Wdrażanie niezależnej aplikacji.

Korzystanie z platformy Docker z usługą Web App for Containers

Usługa Docker Hub w witrynie https://hub.docker.com/_/microsoft-dotnet zawiera najnowsze obrazy platformy Docker w wersji zapoznawczej. Można użyć tych obrazów jako obrazu podstawowego. Użyj obrazu i wdróż go w usłudze Web App for Containers w zwykły sposób.

Instalowanie rozszerzenia witryny w wersji zapoznawczej

Jeśli podczas korzystania z rozszerzenia witryny w wersji zapoznawczej wystąpi problem, otwórz problem w kategorii dotnet/AspNetCore.

  1. W witrynie Azure Portal przejdź do usługi App Service.
  2. Wybierz aplikację internetową.
  3. Wpisz „roz” w polu wyszukiwania, aby przefiltrować listę narzędzi do zarządzania, lub przewiń listę do pozycji „Rozszerzenia”.
  4. Wybierz pozycję Rozszerzenia.
  5. Wybierz Dodaj.
  6. Wybierz rozszerzenie ASP.NET Core {X.Y} ({x64|x86}) Runtime z listy, gdzie {X.Y} to wersja zapoznawcza środowiska ASP.NET Core, a {x64|x86} to platforma.
  7. Wybierz przycisk OK, aby zaakceptować postanowienia prawne.
  8. Wybierz przycisk OK, aby zainstalować rozszerzenie.

Po zakończeniu operacji będzie zainstalowana najnowsza wersja zapoznawcza platformy .NET Core. Zweryfikuj instalację:

  1. Wybierz pozycję Narzędzia zaawansowane.

  2. Wybierz pozycję Przejdź w obszarze Narzędzia zaawansowane.

  3. Wybierz element menu Konsola debugowania>PowerShell.

  4. W wierszu polecenia programu PowerShell wykonaj następujące polecenie. W poleceniu zastąp ciąg {X.Y} wersją środowiska uruchomieniowego ASP.NET Core, a {PLATFORM} platformą:

    Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.{PLATFORM}\
    

    Polecenie zwraca wartość True, jeśli zainstalowano środowisko uruchomieniowe x64 w wersji zapoznawczej.

Uwaga

Architekturę platformy (x86/x64) aplikacji usługi App Service określa się w ustawieniach aplikacji w witrynie Azure Portal w przypadku aplikacji hostowanych w warstwie z zasobami obliczeniowymi serii A (Podstawowa) lub w wyższej warstwie hostingu. Upewnij się, że ustawienia publikowania aplikacji (na przykład w profilu publikowania (pubxml) w programie Visual Studio) są zgodne z ustawieniami w konfiguracji usługi App Service w witrynie Azure Portal.

Jeśli aplikacja jest uruchamiana w trybie wewnątrzprocesowym i skonfigurowano 64-bitową architekturę platformy (x64), moduł ASP.NET Core Module używa 64-bitowego środowiska uruchomieniowego w wersji zapoznawczej, o ile jest zainstalowane. Zainstaluj rozszerzenie ASP.NET Core {X.Y} (x64) Runtime przy użyciu witryny Azure Portal.

Po zainstalowaniu środowiska uruchomieniowego x64 w wersji zapoznawczej uruchom następujące polecenie w oknie polecenia PowerShell usługi Azure Kudu, aby zweryfikować instalację. Zastąp ciąg {X.Y} wersją środowiska uruchomieniowego ASP.NET Core w następującym poleceniu:

Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\

Polecenie zwraca wartość True, jeśli zainstalowano środowisko uruchomieniowe x64 w wersji zapoznawczej.

Uwaga

Rozszerzenie ASP.NET Core Extensions umożliwia korzystanie z dodatkowych funkcji platformy ASP.NET Core w usługach Azure App Services, na przykład włączenie rejestrowania na platformie Azure. To rozszerzenie jest instalowane automatycznie podczas wdrażania za pomocą programu Visual Studio. Jeśli to rozszerzenie nie jest zainstalowane, zainstaluj je dla swojej aplikacji.

Korzystanie z rozszerzenia witryny w wersji zapoznawczej z szablonem usługi ARM

Jeśli do tworzenia i wdrażania aplikacji jest używany szablon usługi ARM, można użyć typu zasobu Microsoft.Web/sites/siteextensions w celu dodania rozszerzenia witryny do aplikacji internetowej. W poniższym przykładzie do aplikacji dodano rozszerzenie witryny ASP.NET Core 5.0 (x64) Runtime (AspNetCoreRuntime.5.0.x64):

{
    ...
    "parameters": {
        "site_name": {
            "defaultValue": "{SITE NAME}",
            "type": "String"
        },
        ...
    },       
    ...
    "resources": [
        ...
        {
            "type": "Microsoft.Web/sites/siteextensions",
            "apiVersion": "2018-11-01",
            "name": "[concat(parameters('site_name'), '/AspNetCoreRuntime.5.0.x64')]",
            "location": "[resourceGroup().location]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
            ]
        }
    ]
}
    

Symbol zastępczy {SITE NAME} należy zastąpić nazwą aplikacji w usłudze Azure App Service (na przykład contoso).

Publikowanie i wdrażanie aplikacji

W przypadku wdrożenia 64-bitowego:

  • Użyj 64-bitowego zestawu .NET Core SDK, aby skompilować aplikację 64-bitową.
  • Ustaw parametr Platforma na wartość 64 bity w obszarze Konfiguracja>Ustawienia ogólne w usłudze App Service. Aplikacja musi korzystać z wersji Podstawowa lub z wyższego planu usługi, aby wybór liczby bitów platformy był dostępny.

Wdrażanie aplikacji zależnej od struktury

  1. Kliknij projekt prawym przyciskiem myszy w Eksploratorze rozwiązań i wybierz pozycję Opublikuj. Możesz też wybrać pozycję Kompilacja>Opublikuj {nazwa aplikacji} na pasku narzędzi programu Visual Studio.
  2. W oknie dialogowym Publikowanie wybierz pozycję Azure>Dalej.
  3. Wybierz usługę platformy Azure.
  4. Wybierz opcję Zaawansowane. Zostanie otwarte okno dialogowe Publikowanie.
  5. Wybierz grupę zasobów i plan hostingu lub utwórz nowe.
  6. Wybierz Zakończ.
  7. Na stronie Publikowanie:
    • W obszarze Konfiguracja wybierz ikonę pióra Edytuj konfigurację:
      • Upewnij się, że wybrano konfigurację Wydanie.
      • Z listy rozwijanej Tryb wdrażania wybierz pozycję Zależne od struktury.
      • Z listy rozwijanej Docelowe środowisko uruchomieniowe wybierz odpowiednie środowisko uruchomieniowe. Wartość domyślna to win-x86.
    • Aby usunąć dodatkowe pliki podczas wdrażania, otwórz Opcje publikowania plików i zaznacz pole wyboru dotyczące usunięcia dodatkowych plików w miejscu docelowym.
    • Wybierz pozycję Zapisz.
    • Wybierz Publikuj.

Wdrażanie niezależnej aplikacji

Użyj programu Visual Studio lub interfejsu wiersza polecenia platformy .NET Core do przeprowadzenia wdrożenia niezależnego (SCD).

  1. Kliknij projekt prawym przyciskiem myszy w Eksploratorze rozwiązań i wybierz pozycję Opublikuj. Możesz też wybrać pozycję Kompilacja>Opublikuj {nazwa aplikacji} na pasku narzędzi programu Visual Studio.
  2. W oknie dialogowym Publikowanie wybierz pozycję Azure>Dalej.
  3. Wybierz usługę platformy Azure.
  4. Wybierz opcję Zaawansowane. Zostanie otwarte okno dialogowe Publikowanie.
  5. Wybierz grupę zasobów i plan hostingu lub utwórz nowe.
  6. Wybierz Zakończ.
  7. Na stronie Publikowanie:
    • W obszarze Konfiguracja wybierz ikonę pióra Edytuj konfigurację:
      • Upewnij się, że wybrano konfigurację Wydanie.
      • Z listy rozwijanej Tryb wdrażania wybierz pozycję Niezależne.
      • Z listy rozwijanej Docelowe środowisko uruchomieniowe wybierz odpowiednie środowisko uruchomieniowe. Wartość domyślna to win-x86.
    • Aby usunąć dodatkowe pliki podczas wdrażania, otwórz Opcje publikowania plików i zaznacz pole wyboru dotyczące usunięcia dodatkowych plików w miejscu docelowym.
    • Wybierz pozycję Zapisz.
    • Wybierz Publikuj.

Ustawienia protokołu (HTTPS)

Bezpieczne powiązania protokołu umożliwiają określenie certyfikatu do użycia podczas odpowiadania na żądania za pośrednictwem protokołu HTTPS. Powiązanie wymaga prawidłowego certyfikatu prywatnego (pfx) wystawionego dla określonej nazwy hosta. Aby uzyskać więcej informacji, zobacz Samouczek: wiązanie istniejącego niestandardowego certyfikatu SSL z usługą Azure App Service.

Przekształcanie pliku web.config

Jeśli musisz przekształcić plik web.config podczas publikowania (na przykład ustawić zmienne środowiskowe na podstawie konfiguracji, profilu lub środowiska), zobacz Przekształcanie pliku web.config.

Dodatkowe zasoby

Usługa Azure App Service dla systemu Windows Server korzysta z usług IIS (Internet Information Services). Kestrel usługa YARP na frontonie zapewnia moduł równoważenia obciążenia. Następujące tematy dotyczą podstawowej technologii usług IIS: