Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 10 di questo articolo.
Avviso
Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere i criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 10 di questo articolo.
Il servizio app di Azure è un servizio di piattaforma di cloud computing Microsoft per l'hosting di app Web, inclusa ASP.NET Core.
Modelli di app Web aziendali
Per indicazioni sulla creazione di un'app Web affidabile, sicura, efficiente, testabile e scalabile ASP.NET Core, vedere modelli di app Web Enterprise. È disponibile un'app Web di esempio completa di qualità di produzione che implementa i modelli.
Risorse utili
La documentazione del Servizio App è la sede per la documentazione delle App di Azure, incluse esercitazioni, esempi, guide pratiche e altre risorse. Due importanti esercitazioni relative all'hosting di app ASP.NET Core sono:
Creare un'applicazione web ASP.NET Core in Azure
Usare Visual Studio per creare e distribuire un'app Web ASP.NET Core nel servizio app di Azure in Windows.
Creare un'app ASP.NET Core nel Servizio app su Linux
Usare la riga di comando per creare e distribuire un'app Web ASP.NET Core nel servizio app di Azure in Linux.
Iscriversi al repository degli App Service Announcements e monitorare i problemi. Il team di Servizio app pubblica regolarmente annunci e scenari in arrivo in Servizio app.
Gli articoli seguenti sono disponibili nella documentazione di ASP.NET Core:
Pubblicare un'app ASP.NET Core in Azure con Visual Studio
Informazioni su come pubblicare un'app ASP.NET Core in Servizio app di Azure con Visual Studio.
Crea la tua prima pipeline
Impostare una build CI per un'app ASP.NET Core e quindi creare una versione di distribuzione continua in Servizio App di Azure.
Azure Web App sandbox (Sandbox per app Web di Azure)
Scoprire le limitazioni di esecuzione del runtime di App Service di Azure imposte dalla piattaforma Azure Apps.
Risolvere i problemi ed eseguire il debug di progetti ASP.NET Core
Riconoscere e risolvere i problemi di avvisi ed errori con i progetti ASP.NET Core.
Configurazione dell'applicazione
Piattaforma
L'architettura della piattaforma (x86/x64) di un'app di Servizi app viene impostata nelle impostazioni dell'app nel portale di Azure per le app ospitate in un livello di calcolo serie A (Basic) o superiore. Verificare che le impostazioni di pubblicazione dell'app (ad esempio, nel profilo di pubblicazione (.pubxml) di Visual Studio) corrispondano all'impostazione nella configurazione del servizio dell'app nel portale di Azure.
Le app di ASP.NET Core possono essere pubblicate dipendenti dal framework perché i runtime per le app a 64 bit (x64) e a 32 bit (x86) sono presenti in Azure App Service. .NET Core SDK disponibile nel servizio app è a 32 bit, ma è possibile distribuire app a 64 bit compilate in locale usando la console Kudu o il processo di pubblicazione di Visual Studio. Per altre informazioni, vedere la sezione Pubblicare e distribuire l'app.
Per le app con dipendenze native, i runtime per le app a 32 bit (x86) sono disponibili in Servizio app di Azure. La versione di .NET Core SDK disponibile nel servizio app è a 32 bit.
Per altre informazioni sui componenti e sui metodi di distribuzione del framework .NET Core, ad esempio informazioni sul runtime di .NET Core e su .NET Core SDK, vedere Informazioni su .NET Core: Composizione.
Pacchetti
Includere i pacchetti NuGet seguenti per offrire funzionalità di registrazione automatica per le app distribuite in Servizio app di Azure:
-
Microsoft.AspNetCore.AzureAppServices.HostingStartup usa IHostingStartup per fornire l'integrazione della registrazione di ASP.NET Core con il Servizio app di Azure. La funzionalità di registrazione aggiunte vengono fornite dal pacchetto
Microsoft.AspNetCore.AzureAppServicesIntegration. - Microsoft.AspNetCore.AzureAppServicesIntegration esegue AddAzureWebAppDiagnostics per aggiungere i provider di log diagnostici di Azure App Service nel pacchetto
Microsoft.Extensions.Logging.AzureAppServices. - Microsoft.Extensions.Logging.AzureAppServices offre implementazioni di logger per supportare i registri di diagnostica di Azure App Service e le caratteristiche di log in tempo reale.
È necessario fare riferimento ai pacchetti precedenti in modo esplicito nel file di progetto dell'app.
Eseguire l'override della configurazione dell'app usando il portale di Azure
Le impostazioni dell'app nel portale di Azure consentono di impostare le variabili di ambiente per l'app. Per altre informazioni, vedere le risorse seguenti:
Scenari con server proxy e servizi di bilanciamento del carico
Il middleware di integrazione IIS, che consente di configurare il middleware delle intestazioni inoltrate in caso di hosting out-of-process, e il modulo ASP.NET Core sono configurati per inoltrare lo schema (HTTP/HTTPS) e l'indirizzo IP remoto di origine della richiesta. Potrebbero essere necessari interventi di configurazione aggiuntivi per le app ospitate dietro ulteriori server proxy e servizi di bilanciamento del carico. Per altre informazioni, vedere Configurare ASP.NET Core per l'utilizzo di server proxy e servizi di bilanciamento del carico.
Monitoraggio e registrazione
Le app ASP.NET Core distribuite in Azure App Service ricevono automaticamente l'estensione App Service ASP.NET Core Logging Integration. L'estensione abilita l'integrazione della registrazione per le app ASP.NET Core in Servizio app di Azure.
Le app ASP.NET Core distribuite a App Service ricevono automaticamente un'estensione di App Service, le estensioni di registrazione di ASP.NET Core. L'estensione abilita l'integrazione della registrazione per le app ASP.NET Core in Servizio app di Azure.
Per informazioni sul monitoraggio, la registrazione e la risoluzione dei problemi, vedere gli articoli seguenti:
Monitorare le app in Servizio app di Azure
Informazioni su come esaminare le quote e le metriche per le app e i piani del servizio app.
Abilitare la registrazione diagnostica per le app nel Servizio app di Azure
Informazioni su come abilitare e accedere alla registrazione diagnostica per i codici di stato HTTP, le richieste non riuscite e l'attività del server Web.
Gestire gli errori in ASP.NET Core
Riconoscimento degli approcci comuni di gestione degli errori nelle app ASP.NET Core.
Risoluzione dei problemi di ASP.NET Core su Azure App Service e IIS
Informazioni su come diagnosticare i problemi delle distribuzioni del servizio app di Azure con le app ASP.NET Core.
Risoluzione di errori comuni di Servizio app di Azure e IIS con ASP.NET Core
Informazioni sugli errori comuni di configurazione della distribuzione per le app ospitate dal servizio app di Azure o da IIS con suggerimenti per la risoluzione.
Anello di chiavi di protezione dei dati e slot di distribuzione
ASP.NET chiavi di protezione dati di base vengono mantenute nella cartella %HOME%\ASP.NET\DataProtection-Keys . La cartella è associata all'archiviazione di rete e sincronizzata in tutti i computer che ospitano l'app. Le chiavi non sono protette quando sono a riposo. La cartella offre il KeyRing a tutte le istanze di un'app in un singolo slot di distribuzione. Gli slot di distribuzione separati, ad esempio gli slot di gestione temporanea e di produzione, non condividono un KeyRing.
Nel passaggio da uno slot di distribuzione all'altro, tutti i sistemi che usano la protezione dati non saranno in grado di decrittografare i dati archiviati usando il KeyRing all'interno dello slot precedente. Cookie ASP.NET Middleware usa la protezione dei dati per proteggere i cookie. Di conseguenza, gli utenti vengono disconnessi da un'app che usa il middleware Cookie standard di ASP.NET. Per una soluzione di portachiavi indipendente dallo slot, utilizza un fornitore di portachiavi esterno, ad esempio:
- Archiviazione BLOB di Azure
- Azure Key Vault (Archivio chiavi di Azure)
- Archivio SQL
- Redis Cache
Per altre informazioni, vedere Provider di archiviazione delle chiavi in ASP.NET Core.
Distribuire un'app ASP.NET Core che usa un'anteprima di .NET Core
Per distribuire un'app che usa una versione di anteprima di .NET Core, vedere le risorse seguenti. Questi approcci vengono usati anche quando il runtime è disponibile, ma l'SDK non è stato installato in Servizio app di Azure.
- Specificare la versione di .NET Core SDK usando Azure Pipelines
- Distribuire un'app di anteprima autonoma
- Usare Docker con app Web per contenitori
- Installare l'estensione del sito di anteprima
Vedere Selezionare la versione di .NET Core da usare per informazioni sulla selezione della versione di .NET SDK per le distribuzioni autonome.
Specificare la versione di .NET Core SDK usando Azure Pipelines
Usare gli scenari CI/CD di Azure App Service per impostare una build di integrazione continua con Azure DevOps. Dopo aver creato la compilazione di Azure DevOps, configurare facoltativamente la compilazione per l'uso di una versione specifica dell'SDK.
Specificare la versione di .NET Core SDK
Quando si utilizza il centro di distribuzione di Servizio App per creare un build di Azure DevOps, la pipeline di build predefinita include i passaggi per Restore, Build, Test e Publish. Per specificare la versione dell'SDK, selezionare il pulsante Aggiungi (+) nell'elenco Processo agente per aggiungere un nuovo passaggio. Cercare .NET Core SDK nella barra di ricerca.
Spostare il passaggio nella prima posizione della compilazione in modo che i passaggi successivi usino la versione specificata di .NET Core SDK. Specificare la versione di .NET Core SDK. In questo esempio la versione dell'SDK è impostata su 3.0.100.
Per pubblicare una distribuzione autonoma, configurare la distribuzione autonoma nel passaggio Publish e specificare l'identificatore di runtime (RID).
Distribuire un'app di anteprima autonoma
Una distribuzione autonoma che ha come destinazione un runtime di anteprima include il runtime di anteprima nella distribuzione.
Quando si distribuisce un'app autonoma:
- Il sito nel Servizio app di Azure non richiede l'estensione del sito di anteprima.
- L'app deve essere pubblicata seguendo un approccio diverso rispetto alla procedura di pubblicazione per una distribuzione dipendente dal framework.
Seguire le istruzioni riportate nella sezione Distribuire l'app autonoma.
Usare Docker con app Web per contenitori
L'hub Docker in https://hub.docker.com/_/microsoft-dotnet contiene le immagini Docker di anteprima più recenti. Le immagini possono essere usate come immagini di base. Usare l'immagine e distribuirla nelle Web App per contenitori normalmente.
Installare l'estensione del sito di anteprima
Se si verifica un problema con l'estensione del sito di anteprima, aprire una segnalazione su dotnet/AspNetCore.
- Dal portale di Azure passare al servizio app.
- Selezionare l'app Web.
- Digitare "es" nella casella di ricerca per filtrare per "Estensioni" o scorrere l'elenco degli strumenti di gestione.
- Selezionare Estensioni.
- Selezionare Aggiungi.
- Selezionare l'estensione ASP.NET Core {X.Y} ({x64|x86}) Runtime nell'elenco, dove
{X.Y}è la versione di anteprima di ASP.NET Core e{x64|x86}specifica la piattaforma. - Selezionare OK per accettare le condizioni legali.
- Per installare l'estensione, selezionare OK.
Al termine dell'operazione, viene installata l'anteprima più recente di .NET Core. Verificare l'installazione:
Selezionare Strumenti avanzati.
Selezionare Vai in Strumenti avanzati.
Selezionare l'elemento di menu Console di debug>PowerShell.
Eseguire il comando seguente dal prompt di PowerShell. Sostituire la versione di runtime di ASP.NET Core in
{X.Y}e la piattaforma in{PLATFORM}nel comando:Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.{PLATFORM}\Il comando restituisce
Truequando è installato il runtime di anteprima x64.
Nota
L'architettura della piattaforma (x86/x64) di un'app di Servizi app viene impostata nelle impostazioni dell'app nel portale di Azure per le app ospitate in un livello di calcolo serie A (Basic) o superiore. Verificare che le impostazioni di pubblicazione dell'app (ad esempio, nel profilo di pubblicazione (.pubxml) di Visual Studio) corrispondano all'impostazione nella configurazione del servizio dell'app nel portale di Azure.
Se l'app viene eseguita in modalità in-process e l'architettura della piattaforma è configurata per 64 bit (x64), il modulo ASP.NET Core usa il runtime dell'anteprima a 64 bit, se presente. Installare l'estensione di runtime di ASP.NET Core {X.Y} (x64) usando il portale di Azure.
Dopo aver installato il runtime di anteprima x64, eseguire il comando seguente nella finestra di comando di PowerShell di Kudu di Azure per verificare l'installazione. Sostituire la versione di runtime di ASP.NET Core per {X.Y} nel comando seguente:
Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\
Il comando restituisce True quando è installato il runtime di anteprima x64.
Usare l'estensione del sito di anteprima con un modello ARM
Se per creare e distribuire le app si usa un modello ARM, è possibile usare il tipo di risorsa Microsoft.Web/sites/siteextensions per aggiungere l'estensione del sito a un'app Web. Nell'esempio seguente, l'estensione del sito Runtime .NET 5 (x64) (AspNetCoreRuntime.5.0.x64) viene aggiunta all'app:
{
...
"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'))]"
]
}
]
}
Per il segnaposto {SITE NAME}, usare il nome dell'app in Servizio app di Azure (ad esempio, contoso).
Pubblicare e distribuire l'app
Per una distribuzione a 64 bit:
- Usare un SDK .NET Core a 64 bit per costruire un'app a 64 bit.
- Impostare Piattaforma su 64 bit in Configurazione>Impostazioni generali nel servizio di app. L'app deve usare un piano di servizio Basic o superiore per abilitare la scelta del numero di bit della piattaforma.
Distribuire l'app in modo dipendente dal framework
Le app pubblicate come dipendenti dal framework sono multipiattaforma e non includono il runtime .NET nella distribuzione. app Azure Servizio include il runtime .NET.
- Fare clic con il pulsante destro del mouse in Esplora soluzioni, quindi scegliere Pubblica. In alternativa, selezionare Compila>Pubblica {nome applicazione} sulla barra degli strumenti di Visual Studio.
- Nella finestra di dialogo Pubblica selezionare Azure>Avanti.
- Selezionare il servizio di Azure.
- Seleziona Avanzate. Viene visualizzata la finestra di dialogo Pubblica.
- Selezionare un gruppo di risorse e un piano di hosting oppure crearne di nuovi.
- Selezionare Fine.
- Nella pagina Pubblica :
- Per la Configurazione, selezionare l'icona della penna Modifica Configurazione:
- Verificare che sia selezionata la configurazione Rilascio.
- Nell'elenco a discesa Modalità di distribuzione selezionare Dipendente dal framework.
- Nell'elenco a discesa Runtime di destinazione selezionare il runtime desiderato. Il valore predefinito è
win-x86.
- Per rimuovere file aggiuntivi durante la distribuzione, aprire Opzioni pubblicazione file e selezionare la casella di controllo che consente di rimuovere i file aggiuntivi nella destinazione.
- Seleziona Salva.
- Seleziona Pubblica.
- Per la Configurazione, selezionare l'icona della penna Modifica Configurazione:
Distribuire l'app auto-sufficiente
La pubblicazione di un'app come indipendente produce un eseguibile specifico della piattaforma. La cartella di pubblicazione dell'output contiene tutti i componenti dell'app, incluse le librerie .NET e il runtime di destinazione. Per altre informazioni, vedere [Pubblicare autonomo]/dotnet/core/deploying/#publish-self-contained). Usare Visual Studio o l'interfaccia della riga di comando di .NET per una distribuzione autonoma (SCD).
- Fare clic con il pulsante destro del mouse in Esplora soluzioni, quindi scegliere Pubblica. In alternativa, selezionare Compila>Pubblica {nome applicazione} sulla barra degli strumenti di Visual Studio.
- Nella finestra di dialogo Pubblica selezionare Azure>Avanti.
- Selezionare il servizio di Azure.
- Seleziona Avanzate. Viene visualizzata la finestra di dialogo Pubblica.
- Selezionare un gruppo di risorse e un piano di hosting oppure crearne di nuovi.
- Selezionare Fine.
- Nella pagina Pubblica :
- Per Configurazione, selezionare l'icona a forma di penna, Modifica configurazione:
- Verificare che sia selezionata la configurazione Rilascio.
- Nell'elenco a discesa Modalità di distribuzione selezionare Autonoma.
- Nell'elenco a discesa Runtime di destinazione selezionare il runtime desiderato. Il valore predefinito è
win-x86.
- Per rimuovere file aggiuntivi durante la distribuzione, aprire Opzioni pubblicazione file e selezionare la casella di controllo che consente di rimuovere i file aggiuntivi nella destinazione.
- Seleziona Salva.
- Seleziona Pubblica.
- Per Configurazione, selezionare l'icona a forma di penna, Modifica configurazione:
Impostazioni del protocollo (HTTPS)
Le associazioni di protocollo protette consentono di specificare un certificato da usare per rispondere alle richieste su HTTPS. L'associazione richiede un certificato privato valido (.pfx) rilasciato per il nome host specifico. Per altre informazioni, vedere Esercitazione: Associare un certificato SSL personalizzato esistente a Servizio app di Azure.
Trasformare web.config
Se è necessario trasformare web.config in fase di pubblicazione (ad esempio, impostare variabili di ambiente in base a configurazione, profilo o ambiente), vedere Trasformare web.config.
Risorse aggiuntive
- Panoramica di App Service
- Panoramica della diagnostica del servizio app di Azure
- Ospitare ASP.NET Core in una web farm
- Esercitazione: Connettersi a un database SQL dall'App Service .NET senza segreti usando un'identità gestita
Il servizio app di Azure in Windows Server usa Internet Information Services (IIS). Kestrel e YARP sul front-end fornisce il servizio di bilanciamento del carico. Gli argomenti seguenti riguardano la tecnologia IIS sottostante: