Nasazení aplikací ASP.NET Core do Azure App Service

Azure App Service je služba platformy cloud computingu Microsoftu pro hostování webových aplikací, včetně ASP.NET Core.

Spolehlivé vzory webových aplikací

Pokyny k vytvoření moderní, spolehlivé, výkonné, testovatelné, nákladově efektivní a škálovatelné aplikace ASP.NET Core, ať už od nuly nebo refaktoringu stávající aplikace, najdete v článku o modelu Reliable Web App Pattern for.NETYouTube.

Užitečné prostředky

Dokumentace k App Service je domovská stránka dokumentace, kurzů, ukázek, návodů a dalších materiálů k aplikacím Azure. Dále jsou uvedené dva významné kurzy, které se týkají hostování aplikací ASP.NET Core:

Vytvoření webové aplikace ASP.NET Core v Azure
Pomocí sady Visual Studio můžete vytvořit webovou aplikaci ASP.NET Core a nasadit ji do Azure App Service ve Windows.

Vytvoření aplikace ASP.NET Core v App Service v Linuxu
Pomocí příkazového řádku můžete vytvořit webovou aplikaci ASP.NET Core a nasadit ji do Azure App Service v Linuxu.

Verzi ASP.NET Core, která je k dispozici v Azure App Service, zjistíte na řídicím panelu ASP.NET Core v App Service.

Přihlaste se k odběru úložiště oznámení služby App Service a monitorujte problémy. Tým App Service pravidelně publikuje oznámení a scénáře pro App Service.

Následující články jsou k dispozici v dokumentaci k ASP.NET Core:

Publikování aplikace ASP.NET Core do Azure s využitím sady Visual Studio
Dozvíte se, jak publikovat aplikaci ASP.NET Core do Azure App Service s využitím sady Visual Studio.

Vytvoření prvního kanálu
Nastavte sestavení CI pro aplikaci ASP.NET Core a pak vytvořte verzi průběžného nasazování do Azure App Service.

Sandbox webových aplikací Azure
Seznamte se s omezeními spouštění modulu runtime Azure App Service, které vynucuje platforma Azure App.

Řešení potíží s projekty ASP.NET Core a jejich ladění
Seznamte se s upozorněními a chybami v projektech ASP.NET Core a vyřešte je.

Konfigurace aplikací

Platforma

Architektura platformy (x86/x64) aplikace App Services je pro aplikace hostované na výpočetní úrovni řady A (Basic) nebo vyšší nastavená v nastavení aplikace na webu Azure Portal. Ověřte, že nastavení publikování aplikace (například profil publikování (.pubxml) v sadě Visual Studio) odpovídá nastavení v konfiguraci služby aplikace na webu Azure Portal.

Moduly runtime pro 64bitové aplikace (x64) a 32bitové aplikace (x86) jsou k dispozici v Azure App Service. Sada .NET Core SDK, která je k dispozici v App Service, je 32bitová. 64bitové aplikace sestavené místně můžete nasadit pomocí konzoly Kudu nebo procesu publikování v sadě Visual Studio. Další informace najdete v části Publikování a nasazení aplikace.

Pro aplikace s nativními závislostmi jsou v Azure App Service k dispozici moduly runtime pro 32bitové aplikace (x86). Sada .NET Core SDK, která je k dispozici v App Service, je 32bitová.

Další informace o komponentách a metodách distribuce architektury .NET Core, jako jsou informace o modulu runtime .NET Core a sadě .NET Core SDK, najdete v tématu O platformě .NET Core: Kompozice.

Balíčky

Zahrňte následující balíčky NuGet, které poskytují funkce automatického protokolování pro aplikace nasazené do Azure App Service:

Na předchozí balíčky musí explicitně odkazovat souboru projektu aplikace.

Přepsání konfigurace aplikace s využitím webu Azure Portal

Nastavení aplikace na webu Azure Portal umožňuje nastavit proměnné prostředí pro tuto aplikaci. Proměnné prostředí mohou být využívány zprostředkovatelem konfigurace pro proměnné prostředí.

Když se na webu Azure Portal vytvoří nebo upraví nastavení aplikace a vybere se tlačítko Uložit, aplikace Azure se restartuje. Proměnná prostředí je v aplikaci k dispozici po restartování služby.

Když aplikace používá obecného hostitele, proměnné prostředí se do konfigurace aplikace načtou, když se volá CreateDefaultBuilder pro sestavení hostitele. Další informace najdete v tématech Obecný hostitel .NET v ASP.NET Core a Zprostředkovatel konfigurace pro proměnné prostředí.

Nastavení aplikace na webu Azure Portal umožňuje nastavit proměnné prostředí pro tuto aplikaci. Proměnné prostředí mohou být využívány zprostředkovatelem konfigurace pro proměnné prostředí.

Když se na webu Azure Portal vytvoří nebo upraví nastavení aplikace a vybere se tlačítko Uložit, aplikace Azure se restartuje. Proměnná prostředí je v aplikaci k dispozici po restartování služby.

Když aplikace používá webového hostitele, proměnné prostředí se do konfigurace aplikace načtou, když se volá CreateDefaultBuilder pro sestavení hostitele. Další informace najdete v tématech Webový hostitel ASP.NET Core a Zprostředkovatel konfigurace proměnných prostředí.

Scénáře týkající se proxy serveru a nástroje pro vyrovnávání zatížení

Middleware IIS Integration, který konfiguruje middleware Forwarded Headers při hostování mimo proces, a modul ASP.NET Core se konfigurují tak, aby předávaly schéma (HTTP/HTTPS) a vzdálenou IP adresu, odkud požadavek pochází. Aplikace hostované za dalšími proxy servery a nástroji pro vyrovnávání zatížení můžou vyžadovat další konfiguraci. Další informace najdete v tématu Konfigurace ASP.NET Core pro práci s proxy servery a nástroji pro vyrovnávání zatížení.

Monitorování a protokolování

Aplikace ASP.NET Core nasazené do App Service automaticky obdrží rozšíření App Service, ASP.NET Core Logging Integration. Toto rozšíření umožňuje integraci protokolování pro aplikace ASP.NET Core v Azure App Service.

Aplikace ASP.NET Core nasazené do App Service automaticky obdrží rozšíření App Service, ASP.NET Core Logging Extensions. Toto rozšíření umožňuje integraci protokolování pro aplikace ASP.NET Core v Azure App Service.

Informace o monitorování, protokolování a odstraňování potíží najdete v následujících článcích:

Monitorování aplikací ve službě Azure App Service
Seznamte se s tím, jak kontrolovat kvóty a metriky pro aplikace a plány služby App Service.

Povolení protokolování diagnostiky aplikací ve službě Azure App Service
Seznamte se s tím, jak povolit protokolování diagnostiky pro stavové kódy HTTP, neúspěšné požadavky a aktivitu webového serveru a získat k němu přístup.

Zpracování chyb v ASP.NET Core
Seznamte se s běžnými přístupy k řešení chyb v aplikacích ASP.NET Core.

Řešení potíží s ASP.NET Core v Azure App Service a ve službě IIS
Seznamte se s tím, jak diagnostikovat problémy s nasazeními Azure App Service s aplikacemi ASP.NET Core.

Řešení běžných chyb v Azure App Service a ve službě IIS souvisejících s ASP.NET Core
Podívejte se na běžné chyby konfigurace nasazení aplikací hostovaných službou Azure App Service / IIS s radami pro řešení problémů.

Svazek klíčů ochrany dat a sloty nasazení

Klíče ochrany dat se uchovávají ve složce %HOME%\ASP.NET\DataProtection-Keys. Tato složka je zálohovaná síťovým úložištěm a synchronizuje se napříč všemi počítači, které jsou hostitelem příslušné aplikace. Klíče nejsou v klidovém stavu chráněné. Tato složka poskytuje svazek klíčů ke všem instancím aplikace v jednom slotu nasazení. Jednotlivé sloty nasazení, jako jsou přípravný a produkční, nesdílejí svazky klíčů.

Při výměně mezi sloty nasazení nebude žádný systém používající ochranu dat schopen dešifrovat uložená data pomocí svazku klíčů v předchozím slotu. Middleware ASP.NET Cookie používá k ochrany svých souborů cookie ochranu dat. To vede k odhlášení uživatelů z aplikace, která používá standardní middleware ASP.NET Cookie. Pro řešení svazku klíčů, které nezávisí na slotu, použijte externího poskytovatele svazků klíčů, jako je:

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

Další informace najdete v tématu Poskytovatelé úložiště klíčů v ASP.NET Core.

Nasazení aplikace ASP.NET Core, která používá .NET Core ve verzi Preview

Pokud chcete nasadit aplikaci, která používá .NET Core ve verzi Preview, projděte si následující zdroje informací. Tyto přístupy se používají také v případech, kdy je modul runtime dostupný, ale v Azure App Service není nainstalovaná sady SDK.

Verzi ASP.NET Core, která je k dispozici v Azure App Service, zjistíte na řídicím panelu ASP.NET Core v App Service.

Informace o výběru verze sady .NET SDK pro samostatná nasazení najdete v tématu věnovaném výběru verze .NET Core, která se má použít.

Určení verze sady .NET Core SDK pomocí Azure Pipelines

Pomocí scénářů CI/CD služby Azure App Service můžete nastavit sestavení kontinuální integrace s využitím Azure DevOps. Po vytvoření sestavení Azure DevOps volitelně nakonfigurujte sestavení tak, aby používalo konkrétní verzi sady SDK.

Určení verze sady .NET Core SDK

Při použití centra nasazení služby App Service k vytvoření sestavení Azure DevOps zahrnuje výchozí kanál buildu kroky pro Restore, Build, Test a Publish. Pokud chcete zadat verzi sady SDK, vyberte v seznamu úloh agenta tlačítko Přidat (+) a přidejte nový krok. Na panelu vyhledávání vyhledejte .NET Core SDK.

Add the .NET Core SDK step

Přesuňte tento krok na první pozici v sestavení tak, aby kroky, které za ním následují, používaly zadanou verzi sady .NET Core SDK. Zadejte verzi sady .NET Core SDK. V tomto příkladu je pro sadu SDK nastavená verze 3.0.100.

Completed SDK step

Pokud chcete publikovat samostatné nasazení (SCD), nakonfigurujte ho v kroku Publish a zadejte identifikátor modulu runtime (RID).

Self-contained publish

Nasazení samostatné aplikace ve verzi Preview

Samostatné nasazení (SCD), které cílí na modul runtime ve verzi Preview, v sobě nese modul runtime verze Preview.

Při nasazování samostatné aplikace:

Postupujte podle pokynů v části Nasazení aplikace samostatně.

Použití Dockeru s funkcí Web Apps for Containers

Centrum Dockeru obsahuje https://hub.docker.com/_/microsoft-dotnet nejnovější náhled imagí Dockeru. Tyto image lze použít jako základní image. Použijte tuto image a nasaďte ji do Web App for Containers normálním způsobem.

Instalace rozšíření webu verze Preview

Pokud dojde k problému s použitím rozšíření webu vrze Preview, otevřete problém s dotnet/AspNetCore.

  1. Na webu Azure Portal přejděte na App Service.
  2. Vyberte požadovanou webovou aplikaci.
  3. Pomocí vyhledávacího pole vyfiltrujte rozšíření nebo se posuňte dolů v seznamu nástrojů pro správu.
  4. Vyberte Rozšíření.
  5. Vyberte Přidat.
  6. V seznamu vyberte rozšíření ASP.NET Core {X.Y} ({x64|x86}) Runtime, kde {X.Y} je verze Preview architektury ASP.NET Core Preview a {x64|x86} určuje platformu.
  7. Výběrem OK přijměte právní podmínky.
  8. Pokud chcete rozšíření nainstalovat, vyberte OK.

Po dokončení této operace je nainstalovaná nejnovější verze .NET Core Preview. Ověřte tuto instalaci:

  1. Vyberte Rozšířené nástroje.

  2. V části Rozšířené nástroje vyberte Přejít.

  3. Vyberte položku nabídky Konzol ladění>PowerShell.

  4. Na příkazovém řádku PowerShellu spusťte následující příkaz. V následujícím příkazu jako {X.Y} zadejte verzi modulu rutime ASP.NET Core a jako {PLATFORM} zadejte platformu:

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

    Pokud je nainstalovaný modul runtime x64 verze Preview, tento příkaz vrátí True.

Poznámka:

Architektura platformy (x86/x64) aplikace App Services je pro aplikace hostované na výpočetní úrovni řady A (Basic) nebo vyšší nastavená v nastavení aplikace na webu Azure Portal. Ověřte, že nastavení publikování aplikace (například profil publikování (.pubxml) v sadě Visual Studio) odpovídá nastavení v konfiguraci služby aplikace na webu Azure Portal.

Pokud je aplikace spuštěná ve vnitroprocesovém režimu a architektura platformy je nakonfigurovaná pro 64bitovou verzi (x64), modul ASP.NET Core používá 64bitový modul runtime verze Preview, pokud je k dispozici. Nainstalujte rozšíření ASP.NET Core {X.Y} (x64) Runtime pomocí webu Azure Portal.

Po dokončení instalace modulu runtime x64 verze Preview spusťte v příkazovém okně Azure Kudu PowerShellu následující příkaz k jejímu ověření. V následujícím příkazu místo {X.Y} použijte verzi modulu runtime ASP.NET Core:

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

Pokud je nainstalovaný modul runtime x64 verze Preview, tento příkaz vrátí True.

Poznámka:

Rozšíření ASP.NET Core umožňují další funkce pro ASP.NET Core v Azure App Services, jako je povolení protokolování Azure. Toto rozšíření se nainstaluje automaticky při nasazování ze sady Visual Studio. Pokud toto rozšíření není nainstalované, nainstalujte ho pro aplikaci.

Použití rozšíření webu verze Preview se šablonou ARM

Pokud se k vytváření a nasazování aplikací používá šablona ARM, můžete typ prostředku Microsoft.Web/sites/siteextensions použít k přidání rozšíření webu do webové aplikace. V následujícím příkladu se do aplikace přidá rozšíření webu 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'))]"
            ]
        }
    ]
}
    

Místo zástupného symbolu {SITE NAME} použijte název aplikace v Azure App Service (například contoso).

Publikování a nasazení aplikace

Pro 64bitové nasazení:

  • K sestavení 64bitové aplikace použijte 64bitovou sadu .NET Core SDK.
  • V části Konfigurace>Obecná nastavení služby App Service nastavte možnost Platforma na 64 bitů. Aby bylo možné zvolit bitovou verzi platformy, musí aplikace používat plán služeb Basic nebo vyšší.

Nasazení aplikace závislé na architektuře

  1. V Průzkumníku řešení klikněte pravým tlačítkem na projekt a vyberte Publikovat. Případně na panelu nástrojů sady Visual Studio vyberte Sestavení>Publikovat {název aplikace}.
  2. V dialogovém okně Publikovat vyberte Azure>Další.
  3. Vyberte službu Azure.
  4. Vyberte Upřesnit. Otevře se dialogové okno Publikovat.
  5. Vyberte skupinu prostředků a plán hostování nebo vytvořte nové.
  6. Vyberte Dokončit.
  7. Na stránce Publikovat:
    • V části Konfigurace vyberte ikonu pera Upravit konfiguraci:
      • Ověřte, že je vybraná konfigurace Vydaná verze.
      • V rozevíracím seznamu Režim nasazení vyberte Závislé na architektuře.
      • V rozevíracím seznamu Cílový modul runtime vyberte požadovaný modul runtime. Výchozí hodnota je win-x86.
    • Pokud chcete při nasazení odebrat další soubory, otevřete Možnosti publikování souboru a zaškrtněte políčko pro odebrání dalších souborů v cílovém umístění.
    • Zvolte Uložit.
    • Vyberte Publikovat.

Nasazení aplikace samostatně

Pro samostatné nasazení (SCD) použijte Visual Studio nebo .NET Core CLI.

  1. V Průzkumníku řešení klikněte pravým tlačítkem na projekt a vyberte Publikovat. Případně na panelu nástrojů sady Visual Studio vyberte Sestavení>Publikovat {název aplikace}.
  2. V dialogovém okně Publikovat vyberte Azure>Další.
  3. Vyberte službu Azure.
  4. Vyberte Upřesnit. Otevře se dialogové okno Publikovat.
  5. Vyberte skupinu prostředků a plán hostování nebo vytvořte nové.
  6. Vyberte Dokončit.
  7. Na stránce Publikovat:
    • V části Konfigurace vyberte ikonu pera Upravit konfiguraci:
      • Ověřte, že je vybraná konfigurace Vydaná verze.
      • V rozevíracím seznamu Režim nasazení vyberte Samostatné.
      • V rozevíracím seznamu Cílový modul runtime vyberte požadovaný modul runtime. Výchozí hodnota je win-x86.
    • Pokud chcete při nasazení odebrat další soubory, otevřete Možnosti publikování souboru a zaškrtněte políčko pro odebrání dalších souborů v cílovém umístění.
    • Zvolte Uložit.
    • Vyberte Publikovat.

Nastavení protokolu (HTTPS)

Zabezpečené vazby protokolu umožňují zadat certifikát, který se má použít při odpovídání na požadavky přes HTTPS. Vazba vyžaduje platný privátní certifikát (.pfx) vydaný pro konkrétní název hostitele. Další informace najdete v tématu Kurz: Vytvoření vazby mezi existujícím vlastním certifikátem SSL a Azure Web Apps.

Transformace souboru web.config

Pokud potřebujete při publikování transformovat soubor web.config (například nastavit proměnné prostředí na základě konfigurace, profilu nebo prostředí), projděte si téma Transformace souboru web.config.

Další materiály

Azure App Service ve Windows Serveru využívá Internetovou informační službu (IIS). Kestrel a YARP na front-endu poskytuje nástroj pro vyrovnávání zatížení. Následující témata se týkají základní technologie služeb IIS: