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

Poznámka:

Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

Upozorňující

Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

Důležité

Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.

Aktuální verzi najdete ve verzi .NET 8 tohoto článku.

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 začátku nebo refaktoring existující aplikace, najdete v článku o modelu Reliable Web App Pattern for.NET YouTube.

Užitečné prostředky

Dokumentace ke službě home App Service je dokumentace pro Aplikace Azure s, kurzy, ukázky, návody a další zdroje informací. 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.

aplikace ASP.NET Core můžou být publikované na architektuře závislé, protože moduly runtime pro 64bitovou verzi (x64) a 32bitové (x86) aplikace se nacházejí ve službě Aplikace Azure 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.

Proměnné prostředí se načtou do konfigurace aplikace, když se zavolá CreateBuilder pro sestavení hostitele. Další informace najdete v zprostředkovateli konfigurace proměnných 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 chráněné na adrese rest. 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. Cookie ASP.NET Middleware používá ochranu dat k ochraně svých souborů cookie. 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.

Přidání kroku pro .NET Core SDK

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.

Dokončený krok pro SDK

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

Samostatné publikování

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.

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

Aplikace publikované jako závislé na architektuře jsou multiplatformní a nezahrnují modul runtime .NET do nasazení. služba Aplikace Azure zahrnuje modul runtime .NET.

  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ě

Publikování aplikace jako samostatného souboru vytvoří spustitelný soubor specifický pro platformu. Výstupní složka publikování obsahuje všechny součásti aplikace, včetně knihoven .NET a cílového modulu runtime. Další informace najdete v tématu [Publikování self-contained]/dotnet/core/deploying/#publish-self-contained). K samostatnému nasazení (SCD) použijte Visual Studio nebo rozhraní příkazového řádku .NET 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: