Migrera en ASP.NET-app till Azure App Service med hjälp av en Windows-container (förhandsversion)Migrate an ASP.NET app to Azure App Service using a Windows container (Preview)

Azure App Service har fördefinierade programstackar i Windows som ASP.NET eller Node.js, som körs i IIS.Azure App Service provides pre-defined application stacks on Windows like ASP.NET or Node.js, running on IIS. Den förkonfigurerade Windows-miljön låser operativsystemet från administrativ åtkomst, programinstallationer, ändringar av den globala sammansättningscachen och så vidare (se Operativsystemfunktioner i Azure App Service).The preconfigured Windows environment locks down the operating system from administrative access, software installations, changes to the global assembly cache, and so on (see Operating system functionality on Azure App Service). Men genom att använda en anpassad Windows-container i App Service kan du göra nödvändiga operativsystemändringar som appen behöver, vilket gör det enkelt att migrera en lokal app som kräver en anpassad operativsystem- och programvarukonfiguration.However, using a custom Windows container in App Service lets you make OS changes that your app needs, so it's easy to migrate on-premises app that requires custom OS and software configuration. Den här kursen beskriver hur du migrerar en ASP.NET-app till App Service som använder anpassade teckensnitt som installeras i Windows-teckensnittsbiblioteket.This tutorial demonstrates how to migrate to App Service an ASP.NET app that uses custom fonts installed in the Windows font library. Du distribuerar en Windows-avbildning med en anpassad konfiguration från Visual Studio till Azure Container Registry och kör den sedan i App Service.You deploy a custom-configured Windows image from Visual Studio to Azure Container Registry, and then run it in App Service.

KravPrerequisites

För att slutföra den här kursen behöver du:To complete this tutorial:

Konfigurera appen lokaltSet up the app locally

Hämta exempletDownload the sample

I det här steget konfigurerar du det lokala .NET-projektet.In this step, you set up the local .NET project.

Exempelprojektet innehåller ett enkelt ASP.NET-program som använder ett anpassat teckensnitt som installeras i Windows-teckensnittsbiblioteket.The sample project contains a simple ASP.NET application that uses a custom font that is installed into the Windows font library. Det är inte nödvändigt att installera teckensnitt, men det är ett exempel på en app som är integrerad med det underliggande operativsystemet.It's not necessary to install fonts, but it's an example of an app that is integrated with the underlying OS. För att migrera den här typen av app till App Service måste du antingen omorganisera din kod för att ta bort integrationen eller migrera den som den är i en anpassad Windows-container.To migrate such an app to App Service, you either rearchitect your code to remove the integration, or migrate it as-is in a custom Windows container.

Installera teckensnittetInstall the font

I Utforskaren navigerar du till custom-font-win-container-master/CustomFontSample, högerklickar på FrederickatheGreat-Regular.ttf och väljer Installera.In Windows Explorer, navigate to custom-font-win-container-master/CustomFontSample, right-click FrederickatheGreat-Regular.ttf, and select Install.

Det här teckensnittet är offentligt tillgängligt från Google Fonts.This font is publicly available from Google Fonts.

Kör appenRun the app

Öppna filen custom-font-win-container/CustomFontSample.sln i Visual Studio.Open the custom-font-win-container/CustomFontSample.sln file in Visual Studio.

Skriv Ctrl+F5 för att köra appen utan felsökning.Type Ctrl+F5 to run the app without debugging. Appen visas i din standardwebbläsare.The app is displayed in your default browser.

Dialogrutan Nytt ASP.NET-projekt

Eftersom den använder ett installerat teckensnitt kan inte appen köras i sandbox-miljön för App Service.Because it uses an installed font, the app can't run in the App Service sandbox. Du kan dock distribuera den med hjälp av en Windows-container i stället, eftersom du kan installera teckensnittet i Windows-containern.However, you can deploy it using a Windows container instead, because you can install the font in the Windows container.

Konfigurera Windows-containernConfigure Windows container

I Solution Explorer högerklickar du på projektet CustomFontSample och väljer Lägg till > Container Orchestration Support (Stöd för containerorkestrering).In Solution Explorer, right-click the CustomFontSample project and select Add > Container Orchestration Support.

Dialogrutan Nytt ASP.NET-projekt

Välj Docker Compose > OK.Select Docker Compose > OK.

Nu har projektet konfigurerats för att köra i en Windows-container.Your project is now set up to run in a Windows container. En Dockerfile läggs till i CustomFontSample-projektet och ett docker-compose-projekt läggs till i lösningen.A Dockerfile is added to the CustomFontSample project, and a docker-compose project is added to the solution.

Från Solution Explorer öppnar du Dockerfile.From the Solution Explorer, open Dockerfile.

Du måste använda en överordnad avbildning som stöds.You need to use a supported parent image. Ändra den överordnade avbildningen genom att ersätta raden FROM med följande kod:Change the parent image by replacing the FROM line with the following code:

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-ltsc2019

Lägg till följande rad i slutet av filen och spara filen:At the end of the file, add the following line and save the file:

RUN ${source:-obj/Docker/publish/InstallFont.ps1}

Du hittar InstallFont.ps1 i projektet CustomFontSample.You can find InstallFont.ps1 in the CustomFontSample project. Det är ett enkelt skript som installerar teckensnittet.It's a simple script that installs the font. Du hittar en mer komplex version av skriptet i Skriptcenter.You can find a more complex version of the script in the Script Center.

Anteckning

Om du vill testa Windows-behållaren lokalt kontrollerar du att Docker startas på den lokala datorn.To test the Windows container locally, make sure that Docker is started on your local machine.

Publicera till Azure Container RegistryPublish to Azure Container Registry

Azure Container Registry kan lagra dina avbildningar för containerdistribution.Azure Container Registry can store your images for container deployments. Du kan konfigurera App Service att använda avbildningar i Azure Container Registry.You can configure App Service to use images hosted in Azure Container Registry.

Öppna publiceringsguidenOpen publish wizard

I Solution Explorer högerklickar du på projektet CustomFontSample och väljer Publicera.In the Solution Explorer, right-click the CustomFontSample project and select Publish.

Dialogrutan Nytt ASP.NET-projekt

Skapa register och publiceraCreate registry and publish

Välj BehållarregisterSkapa nytt Azure-behållarregisterpublicering > Publishi publiceringsguiden > .In the publish wizard, select Container Registry > Create New Azure Container Registry > Publish.

Dialogrutan Nytt ASP.NET-projekt

Logga in med Azure-kontoSign in with Azure account

I dialogrutan Create a new Azure Container Registry (Skapa nytt Azure-containerregister) väljer du Lägg till ett konto och loggar in till din Azure-prenumeration.In the Create a new Azure Container Registry dialog, select Add an account, and sign in to your Azure subscription. Välj det konto som innehåller den önskade prenumerationen i listrutan om du redan är inloggad.If you're already signed in, select the account containing the desired subscription from the dropdown.

Logga in på Azure

Konfigurera registretConfigure the registry

Konfigurera det nya containerregistret baserat på de föreslagna värdena i tabellen nedan.Configure the new container registry based on the suggested values in the following table. Klicka på Skapa när du är klar.When finished, click Create.

InställningSetting Föreslaget värdeSuggested value Mer informationFor more information
DNS-prefixDNS Prefix Behåll det genererade registernamnet eller ändra det till ett annat unikt namn.Keep the generated registry name, or change it to another unique name.
ResursgruppResource Group Klicka på Nytt, skriv myResourceGroup och klicka på OK.Click New, type myResourceGroup, and click OK.
SkuSKU BasicBasic PrisnivåerPricing tiers
RegisterplatsRegistry Location Europa, västraWest Europe

Konfigurera Azure-containerregister

Ett terminalfönster öppnas och visar förloppet för avbildningsdistributionen.A terminal window is opened and displays the image deployment progress. Vänta tills distributionen har slutförts.Wait for the deployment to complete.

Logga in på AzureSign in to Azure

Logga in på Azure Portal på https://portal.azure.com.Sign in to the Azure portal at https://portal.azure.com.

Skapa en webbappCreate a web app

Välj Skapa en > resurswebbapp > för behållare påden vänstra menyn . Create a resourceFrom the left menu, select Create a resource > Web > Web App for Containers.

Konfigurera grunderna i appenConfigure app basics

Konfigurera inställningarna enligt följande tabell på fliken Grunderna och klicka sedan på Nästa: Docker.In the Basics tab, configure the settings according to the following table, then click Next: Docker.

InställningSetting Föreslaget värdeSuggested value Mer informationFor more information
PrenumerationSubscription Kontrollera att rätt prenumeration är markerad.Make sure the correct subscription is selected.
ResursgruppResource Group Välj Skapa ny, skriv myResourceGroupoch klicka på OK.Select Create new, type myResourceGroup, and click OK.
NamnName Skriv ett unikt namn.Type a unique name. Webbadressen till webbappen är http://<app-name>.azurewebsites.net, där <app-name> är appens namn.The URL of the web app is http://<app-name>.azurewebsites.net, where <app-name> is your app name.
PubliceraPublish Docker-behållareDocker container
OperativsystemOperating System WindowsWindows
RegionenRegion Europa, västraWest Europe
Windows-planWindows Plan Välj Skapa ny, skriv myAppServicePlanoch klicka på OK.Select Create new, type myAppServicePlan, and click OK.

Fliken Grunderna ska se ut så här:Your Basics tab should look like this:

Konfigurera Windows-containernConfigure Windows container

Konfigurera den anpassade Windows-behållaren på fliken Docker enligt följande tabell och välj Granska + skapa.In the Docker tab, configure your custom Windows container as shown in the following table, and select Review + create.

InställningSetting Föreslaget värdeSuggested value
BildkällaImage Source Azure-behållarregisterAzure Container Register
RegistretRegistry Markera det register som du skapade tidigare.Select the registry you created earlier.
BildImage customfontsamplecustomfontsample
EtikettenTag senastelatest

Slutför appgenereringenComplete app creation

Klicka på Skapa och vänta på att Azure skapar resurserna som krävs.Click Create and wait for Azure to create the required resources.

Bläddra till webbappenBrowse to the web app

När Azure-åtgärden är klar visas ett meddelande.When the Azure operation is complete, a notification box is displayed.

  1. Klicka på Gå till resurs.Click Go to resource.

  2. På appsidan klickar du på länken under URL.In the app page, click the link under URL.

En ny webbläsarsida öppnas på följande sida:A new browser page is opened to the following page:

Vänta några minuter och försök igen tills startsidan visas med det snygga teckensnitt du förväntar dig:Wait a few minutes and try again, until you get the homepage with the beautiful font you expect:

Grattis!Congratulations! Du har migrerat ett ASP.NET-program till Azure App Service i en Windows-container.You've migrated an ASP.NET application to Azure App Service in a Windows container.

Se containerns startloggarSee container start-up logs

Det kan ta lite tid för Windows-containern att läsas in.It may take some time for the Windows container to load. Om du vill se förloppet navigerar du till följande WEBBADRESS genom att ersätta * <>med* appens namn.To see the progress, navigate to the following URL by replacing <app-name> with the name of your app.

https://<app-name>.scm.azurewebsites.net/api/logstream

De strömmade loggarna ser ut så här:The streamed logs looks like this:

14/09/2018 23:16:19.889 INFO - Site: fonts-win-container - Creating container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest.
14/09/2018 23:16:19.928 INFO - Site: fonts-win-container - Create container for image: customfontsample20180914115836.azurecr.io/customfontsample:latest succeeded. Container Id 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:23.405 INFO - Site: fonts-win-container - Start container succeeded. Container: 329ecfedbe370f1d99857da7352a7633366b878607994ff1334461e44e6f5418
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:17:28.637 INFO - Site: fonts-win-container - Configuring container
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container ready
14/09/2018 23:18:03.823 INFO - Site: fonts-win-container - Container start-up and configuration completed successfully