Usare .NET Core in un'app Web di Azure in Linux

Nota

App Web di Azure su Linux è attualmente disponibile in anteprima pubblica e supporta l'esecuzione di app Web in modo nativo su Linux.

Un'app Web in Linux offre un servizio di hosting Web ad alta scalabilità e con funzioni di auto-correzione basato sul sistema operativo Linux. Questa esercitazione contiene istruzioni dettagliate che illustrano come creare un'app .NET Core nell'app Web di Azure in Linux.

App Web in Linux

È possibile eseguire queste procedure con un computer Mac, Windows o Linux.

Prerequisiti

Per completare questa esercitazione:

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Creare un'applicazione .NET Core locale

Avviare una nuova sessione terminal. Creare una directory denominata hellodotnetcore e passare dalla directory corrente ad essa. Digitare quindi quanto segue:

dotnet new web

Questo comando crea tre file (hellodotnetcore.csproj, Program.cs e Startup.cs) e una cartella vuota (wwwroot/) nella directory corrente. Il contenuto del file .csproj dovrebbe avere un aspetto simile al seguente:

  <!-- Empty lines are omitted. -->

  <Project Sdk="Microsoft.NET.Sdk.Web">
        <PropertyGroup>
        <TargetFramework>netcoreapp1.1</TargetFramework>
        </PropertyGroup>
        <ItemGroup>
        <Folder Include="wwwroot\" />
        </ItemGroup>
        <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
        </ItemGroup>
  </Project>

Poiché di tratta di un'applicazione Web, al file hellodotnetcore.csproj è stato automaticamente aggiunto un riferimento a un pacchetto di ASP.NET Core. Il numero di versione del pacchetto viene impostato in base al framework selezionato. Questo esempio fa riferimento ad ASP.NET Core versione 1.1.2 perché è in uso .NET Core 1.1.

Creare e testare l'applicazione in locale

È possibile compilare ed eseguire l'app .NET Core con il comando dotnet restore seguito dal comando dotnet run, come illustrato di seguito:

dotnet restore
dotnet run

All'avvio dell'applicazione, viene visualizzato un messaggio con cui si indica che l'app è in attesa di richieste in ingresso su una porta.

Hosting environment: Production
Content root path: C:\hellodotnetcore
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

Testare l'app accedendo a http://localhost:5000/ con il browser in uso. Se tutto funziona correttamente, viene visualizzato il testo "Hello World!".

Eseguire il test con il browser

Creare un'app .NET Core nel portale di Azure

Per prima cosa, è necessario creare un'app Web vuota. Accedere al portale di Azure e creare una nuova app Web in Linux.

Creazione di un'app Web

Quando viene visualizzata la pagina Crea, specificare i dettagli relativi all'app Web:

Scelta di uno stack di runtime .NET Core

Usare la tabella seguente come guida per compilare la pagina Crea e quindi selezionare OK e Crea per creare l'app.

Impostazione Valore consigliato Descrizione
Nome app hellodotnetcore Nome dell'app. Il nome deve essere univoco.
Subscription Scelta di una sottoscrizione esistente Sottoscrizione di Azure.
Gruppo di risorse myResourceGroup Gruppo di risorse di Azure che conterrà l'app Web.
Piano di servizio app Nome del piano di servizio app esistente Piano di servizio app.
Configura contenitore .NET Core 1.1 Tipo di contenitore per questa app Web: predefinito, Docker o registro di sistema privato.
Origine immagine Predefinito Origine dell'immagine.
Stack di runtime .NET Core 1.1 Stack di runtime e versione.

Distribuire l'applicazione tramite Git

Usare Git per distribuire l'applicazione .NET Core nell'app Web del Servizio app di Azure.

Il nuovo sito Web di Azure ha già una distribuzione Git configurata. È possibile trovare l'URL di distribuzione Git passando all'URL seguente dopo l'inserimento del nome dell'app Web:

https://{your web app name}.scm.azurewebsites.net/api/scm/info

L'URL Git ha il formato seguente, in base al nome dell'app Web:

https://{your web app name}.scm.azurewebsites.net/{your web app name}.git

Eseguire i comandi seguenti per distribuire l'applicazione locale nel sito Web di Azure:

git init
git remote add azure <Git deployment URL from above>
git add *.csproj *.cs
git commit -m "Initial deployment commit"
git push azure master

Non è necessario eseguire il push dei file presenti nelle directory bin / e obj / perché l'applicazione viene compilata nel cloud quando viene eseguito il push dei file di origine dell'applicazione in Azure. Al termine del processo di compilazione, i file binari vengono copiati nella directory dell'applicazione in /home/site/wwwroot/.

Verificare che per le operazioni di distribuzione in remoto venga segnalato l'esito positivo. Le operazioni di push possono richiedere alcuni minuti perché la risoluzione del pacchetto e il processo di compilazione vengono eseguiti nel cloud. Verranno visualizzati alcuni messaggi di stato, di cui uno informa che i file sono stati copiati. L'output dovrebbe essere simile al seguente:

/* some output has been removed for brevity */
remote: Copying file: 'System.Net.Websockets.dll' 
remote: Copying file: 'System.Runtime.CompilerServices.Unsafe.dll' 
remote: Copying file: 'System.Runtime.Serialization.Primitives.dll' 
remote: Copying file: 'System.Text.Encodings.Web.dll' 
remote: Copying file: 'hellodotnetcore.deps.json' 
remote: Copying file: 'hellodotnetcore.dll' 
remote: Omitting next output lines...
remote: Finished successfully.
remote: Running post deployment commands...
remote: Deployment successful.
To https://hellodotnetcore.scm.azurewebsites.net/
 * [new branch]           master -> master

Dopo aver completato la distribuzione, riavviare l'app Web affinché la distribuzione venga applicata. A questo scopo, accedere al portale di Azure e passare alla pagina Panoramica dell'app Web. Selezionare il pulsante Riavvia nella pagina. Quando viene visualizzata una finestra popup, selezionare per confermare. È quindi possibile passare all'app Web, come illustrato di seguito:

Esplorazione dell'app .NET Core distribuita nel servizio app di Azure in Linux

Pulire le risorse

Nei passaggi precedenti sono state create risorse di Azure in un gruppo di risorse. Se non si prevede di aver bisogno di queste risorse in futuro, è possibile eliminarle eliminando il gruppo di risorse.

Dal menu a sinistra nel portale di Azure scegliere Gruppi di risorse e quindi selezionare myResourceGroup.

Nella pagina del gruppo di risorse assicurarsi che le risorse elencate siano quelle da eliminare.

Selezionare Elimina, digitare myResourceGroup nella casella di testo e quindi selezionare Elimina.

Passaggi successivi