Risolvere i problemi relativi a ASP.NET Core in app Azure servizio e IISTroubleshoot ASP.NET Core on Azure App Service and IIS

Di Luke Latham e Justin KotalikBy Luke Latham and Justin Kotalik

Questo articolo fornisce informazioni sugli errori comuni di avvio delle app e istruzioni su come diagnosticare gli errori quando un'app viene distribuita in app Azure servizio o IIS:This article provides information on common app startup errors and instructions on how to diagnose errors when an app is deployed to Azure App Service or IIS:

Errori di avvio dell'appApp startup errors
Vengono illustrati gli scenari di codice di stato HTTP di avvio comuni.Explains common startup HTTP status code scenarios.

Risolvere i problemi relativi al servizio app AzureTroubleshoot on Azure App Service
Fornisce consigli per la risoluzione dei problemi per le app distribuite nel servizio app Azure.Provides troubleshooting advice for apps deployed to Azure App Service.

Risolvere i problemi in IISTroubleshoot on IIS
Fornisce consigli per la risoluzione dei problemi per le app distribuite in IIS o in esecuzione in IIS Express localmente.Provides troubleshooting advice for apps deployed to IIS or running on IIS Express locally. Le linee guida sono valide per le distribuzioni di Windows Server e Windows desktop.The guidance applies to both Windows Server and Windows desktop deployments.

Cancella cache di pacchettiClear package caches
Spiega cosa fare quando i pacchetti incoerenti interrompono un'app durante l'esecuzione di aggiornamenti principali o la modifica delle versioni del pacchetto.Explains what to do when incoherent packages break an app when performing major upgrades or changing package versions.

Risorse aggiuntiveAdditional resources
Elenca ulteriori argomenti sulla risoluzione dei problemi.Lists additional troubleshooting topics.

Errori di avvio delle appApp startup errors

In Visual Studio, per impostazione predefinita un progetto ASP.NET Core usa l'hosting in IIS Express durante il debug.In Visual Studio, an ASP.NET Core project defaults to IIS Express hosting during debugging. Un errore 502,5-Process o un errore di avvio 500,30 che si verifica quando il debug locale può essere diagnosticato utilizzando i consigli in questo argomento.A 502.5 - Process Failure or a 500.30 - Start Failure that occurs when debugging locally can be diagnosed using the advice in this topic.

In Visual Studio, per impostazione predefinita un progetto ASP.NET Core usa l'hosting in IIS Express durante il debug.In Visual Studio, an ASP.NET Core project defaults to IIS Express hosting during debugging. Un errore del processo 502,5 che si verifica quando è possibile diagnosticare localmente il debug usando i consigli in questo argomento.A 502.5 Process Failure that occurs when debugging locally can be diagnosed using the advice in this topic.

403,14 non consentito403.14 Forbidden

Non è possibile avviare l'app.The app fails to start. Viene registrato l'errore seguente:The following error is logged:

The Web server is configured to not list the contents of this directory.

L'errore è in genere causato da una distribuzione interruppe sul sistema host, che include uno degli scenari seguenti:The error is usually caused by a broken deployment on the hosting system, which includes any of the following scenarios:

  • L'app viene distribuita nella cartella errata del sistema di hosting.The app is deployed to the wrong folder on the hosting system.
  • Il processo di distribuzione non è riuscito a spostare tutti i file e le cartelle dell'app nella cartella di distribuzione nel sistema di hosting.The deployment process failed to move all of the app's files and folders to the deployment folder on the hosting system.
  • Il file Web. config non è presente nella distribuzione oppure il contenuto del file Web. config non è valido.The web.config file is missing from the deployment, or the web.config file contents are malformed.

Eseguire la procedura seguente:Perform the following steps:

  1. Eliminare tutti i file e le cartelle dalla cartella di distribuzione nel sistema di hosting.Delete all of the files and folders from the deployment folder on the hosting system.
  2. Ridistribuire il contenuto della cartella di pubblicazione dell'app nel sistema host usando il normale metodo di distribuzione, ad esempio Visual Studio, PowerShell o la distribuzione manuale:Redeploy the contents of the app's publish folder to the hosting system using your normal method of deployment, such as Visual Studio, PowerShell, or manual deployment:
    • Verificare che il file Web. config sia presente nella distribuzione e che il contenuto sia corretto.Confirm that the web.config file is present in the deployment and that its contents are correct.
    • Quando si esegue l'hosting in app Azure servizio, verificare che l'app venga D:\home\site\wwwroot distribuita nella cartella.When hosting on Azure App Service, confirm that the app is deployed to the D:\home\site\wwwroot folder.
    • Quando l'app è ospitata da IIS, verificare che l'app venga distribuita nel percorso fisico IIS visualizzato nelle impostazioni di basedi Gestione IIS.When the app is hosted by IIS, confirm that the app is deployed to the IIS Physical path shown in IIS Manager's Basic Settings.
  3. Verificare che tutti i file e le cartelle dell'app vengano distribuiti confrontando la distribuzione nel sistema di hosting con il contenuto della cartella di pubblicazione del progetto.Confirm that all of the app's files and folders are deployed by comparing the deployment on the hosting system to the contents of the project's publish folder.

Per ulteriori informazioni sul layout di un'app ASP.NET Core pubblicata, vedere Struttura di directory di ASP.NET Core.For more information on the layout of a published ASP.NET Core app, see Struttura di directory di ASP.NET Core. Per ulteriori informazioni sul file Web. config , vedere Modulo ASP.NET Core.For more information on the web.config file, see Modulo ASP.NET Core.

500 Errore interno del server500 Internal Server Error

L'app viene avviata, ma un errore impedisce al server di soddisfare la richiesta.The app starts, but an error prevents the server from fulfilling the request.

Questo errore si verifica all'interno del codice dell'app durante l'avvio o durante la creazione di una risposta.This error occurs within the app's code during startup or while creating a response. La risposta potrebbe non avere alcun contenuto o essere visualizzata nel browser come un codice 500 Errore interno del server.The response may contain no content, or the response may appear as a 500 Internal Server Error in the browser. Il log eventi dell'applicazione in genere indica che l'app è stata avviata normalmente.The Application Event Log usually states that the app started normally. Dal punto di vista del server, questo è corretto.From the server's perspective, that's correct. L'app è stata effettivamente avviata, ma non può generare una risposta valida.The app did start, but it can't generate a valid response. Eseguire l'app al prompt dei comandi nel server o abilitare il log stdout del modulo ASP.NET Core per risolvere il problema.Run the app at a command prompt on the server or enable the ASP.NET Core Module stdout log to troubleshoot the problem.

500.0 Errore di caricamento del gestore in-process500.0 In-Process Handler Load Failure

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

Il modulo ASP.NET Core non riesce a trovare il CLR .NET Core e a trovare il gestore della richiesta in-process (aspnetcorev2_inprocess. dll).The ASP.NET Core Module fails to find the .NET Core CLR and find the in-process request handler (aspnetcorev2_inprocess.dll). Controllare che:Check that:

500.0 Errore di caricamento del gestore out-of-process500.0 Out-Of-Process Handler Load Failure

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

Il modulo ASP.NET Core non riesce a trovare il gestore della richiesta di hosting out-of-process.The ASP.NET Core Module fails to find the out-of-process hosting request handler. Verificare che aspnetcorev2_outofprocess.dll sia presente in una sottocartella accanto ad aspnetcorev2.dll.Make sure the aspnetcorev2_outofprocess.dll is present in a subfolder next to aspnetcorev2.dll.

500.0 Errore di caricamento del gestore in-process500.0 In-Process Handler Load Failure

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

Si è verificato un errore sconosciuto durante il caricamento dei componenti del modulo ASP.NET Core .An unknown error occurred loading ASP.NET Core Module components. Eseguire una delle azioni seguenti:Take one of the following actions:

500.30 Errore di avvio in-process500.30 In-Process Startup Failure

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

Il modulo ASP.NET Core tenta di avviare .NET Core CLR in-process, ma non è possibile avviarlo.The ASP.NET Core Module attempts to start the .NET Core CLR in-process, but it fails to start. La cause di un errore di avvio del processo può in genere essere determinata dalle voci nel registro eventi dell'applicazione e dal log stdout del modulo ASP.NET Core.The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log.

Una condizione di errore comune è dovuta alla configurazione non corretta dell'app perché come destinazione viene specificata una versione del framework condiviso ASP.NET Core, che non è presente.A common failure condition is the app is misconfigured due to targeting a version of the ASP.NET Core shared framework that isn't present. Controllare le versioni del framework condiviso ASP.NET Core installate nel computer di destinazione.Check which versions of the ASP.NET Core shared framework are installed on the target machine.

500.31 ANCM Failed to Find Native Dependencies (500.31 Il modulo ASP.NET Core non è riuscito a trovare le dipendenze native)500.31 ANCM Failed to Find Native Dependencies

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

Il modulo ASP.NET Core tenta di avviare il runtime di .NET Core in-process, ma non è possibile avviarlo.The ASP.NET Core Module attempts to start the .NET Core runtime in-process, but it fails to start. La causa più comune di questo errore di avvio è la mancata installazione del runtime di Microsoft.NETCore.App o di Microsoft.AspNetCore.App.The most common cause of this startup failure is when the Microsoft.NETCore.App or Microsoft.AspNetCore.App runtime isn't installed. Se l'app viene distribuita per ASP.NET Core 3.0 e tale versione non esiste nel computer, si verifica questo errore.If the app is deployed to target ASP.NET Core 3.0 and that version doesn't exist on the machine, this error occurs. Ecco un esempio di messaggio di errore:An example error message follows:

The specified framework 'Microsoft.NETCore.App', version '3.0.0' was not found.
  - The following frameworks were found:
      2.2.1 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview5-27626-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27713-13 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27714-15 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]
      3.0.0-preview6-27723-08 at [C:\Program Files\dotnet\x64\shared\Microsoft.NETCore.App]

Il messaggio di errore elenca tutte le versioni di .NET Core installate e la versione richiesta dall'app.The error message lists all the installed .NET Core versions and the version requested by the app. Per correggere l'errore, eseguire una delle operazioni seguenti:To fix this error, either:

  • Installare la versione appropriata di .NET Core nel computer.Install the appropriate version of .NET Core on the machine.
  • Modificare l'app in modo che usi una versione di .NET Core presente nel computer.Change the app to target a version of .NET Core that's present on the machine.
  • Pubblicare l'app come distribuzione autonoma.Publish the app as a self-contained deployment.

Durante l'esecuzione in fase di sviluppo (con la variabile di ambiente ASPNETCORE_ENVIRONMENT impostata su Development), l'errore specifico viene scritto nella risposta HTTP.When running in development (the ASPNETCORE_ENVIRONMENT environment variable is set to Development), the specific error is written to the HTTP response. La cause di un errore di avvio del processo è disponibile anche nel registro eventi dell'applicazione.The cause of a process startup failure is also found in the Application Event Log.

500.32 ANCM Failed to Load dll (500.32 Il modulo ASP.NET Core non è riuscito a caricare la DLL)500.32 ANCM Failed to Load dll

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

La causa più comune di questo errore è la pubblicazione dell'app per processori con architettura non compatibile.The most common cause for this error is that the app is published for an incompatible processor architecture. Se il processo di lavoro è in esecuzione come app a 32 bit e l'app è stata pubblicata per un'architettura a 64 bit, si verifica questo errore.If the worker process is running as a 32-bit app and the app was published to target 64-bit, this error occurs.

Per correggere l'errore, eseguire una delle operazioni seguenti:To fix this error, either:

500.33 ANCM Request Handler Load Failure (500.33 Errore di caricamento del gestore della richiesta del modulo ASP.Net Core)500.33 ANCM Request Handler Load Failure

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

L'app non fa riferimento al framework Microsoft.AspNetCore.App.The app didn't reference the Microsoft.AspNetCore.App framework. Solo le app destinate Microsoft.AspNetCore.App al Framework possono essere ospitate dal modulo ASP.NET Core.Only apps targeting the Microsoft.AspNetCore.App framework can be hosted by the ASP.NET Core Module.

Per correggere questo errore, verificare che l'app sia destinata al framework Microsoft.AspNetCore.App.To fix this error, confirm that the app is targeting the Microsoft.AspNetCore.App framework. Controllare il framework di destinazione dell'app nel file .runtimeconfig.json.Check the .runtimeconfig.json to verify the framework targeted by the app.

500.34 ANCM Mixed Hosting Models Not Supported (500.34 Modelli di hosting misto non supportati nel modulo ASP.NET Core)500.34 ANCM Mixed Hosting Models Not Supported

Il processo di lavoro non è in grado di eseguire un'app In-Process e un'app Out-of-process nello stesso processo.The worker process can't run both an in-process app and an out-of-process app in the same process.

Per correggere questo errore, eseguire le app in pool di applicazioni IIS separati.To fix this error, run apps in separate IIS application pools.

500.35 ANCM Multiple In-Process Applications in same Process (500.35 Modulo ASP.NET Core: più applicazioni In-Process nello stesso processo)500.35 ANCM Multiple In-Process Applications in same Process

Il processo di lavoro non è in grado di eseguire un'app In-Process e un'app Out-of-process nello stesso processo.The worker process can't run both an in-process app and an out-of-process app in the same process.

Per correggere questo errore, eseguire le app in pool di applicazioni IIS separati.To fix this error, run apps in separate IIS application pools.

500.36 ANCM Out-Of-Process Handler Load Failure (500.36 Modulo ASP.NET Core: Errore di caricamento del gestore Out-of-process)500.36 ANCM Out-Of-Process Handler Load Failure

Il gestore delle richieste Out-of-process, aspnetcorev2_outofprocess.dll, non è accanto al file aspnetcorev2.dll.The out-of-process request handler, aspnetcorev2_outofprocess.dll, isn't next to the aspnetcorev2.dll file. Indica un'installazione danneggiata del modulo ASP.NET Core.This indicates a corrupted installation of the ASP.NET Core Module.

Per correggere questo errore, riparare l'installazione del bundle di hosting di .NET Core (per IIS) o di Visual Studio (per IIS Express).To fix this error, repair the installation of the .NET Core Hosting Bundle (for IIS) or Visual Studio (for IIS Express).

500.37 ANCM Failed to Start Within Startup Time Limit (500.37 Avvio del modulo ASP.NET Core non riuscito entro il limite di tempo stabilito)500.37 ANCM Failed to Start Within Startup Time Limit

Il modulo ASP.NET Core non è stato avviato entro il limite di tempo specificato.ANCM failed to start within the provied startup time limit. Per impostazione predefinita, il timeout è di 120 secondi.By default, the timeout is 120 seconds.

Questo errore può verificarsi quando si avvia un numero elevato di app nello stesso computer.This error can occur when starting a large number of apps on the same machine. Controllare i picchi di utilizzo della CPU e della memoria nel server durante l'avvio.Check for CPU/Memory usage spikes on the server during startup. Può essere necessario scaglionare il processo di avvio di più app.You may need to stagger the startup process of multiple apps.

502.5 Errore del processo502.5 Process Failure

Il processo di lavoro ha esito negativo.The worker process fails. L'app non viene avviata.The app doesn't start.

Il modulo ASP.NET Core tenta di avviare il processo di lavoro, ma l'avvio non riesce.The ASP.NET Core Module attempts to start the worker process but it fails to start. La cause di un errore di avvio del processo può in genere essere determinata dalle voci nel registro eventi dell'applicazione e dal log stdout del modulo ASP.NET Core.The cause of a process startup failure can usually be determined from entries in the Application Event Log and the ASP.NET Core Module stdout log.

Una condizione di errore comune è dovuta alla configurazione non corretta dell'app perché come destinazione viene specificata una versione del framework condiviso ASP.NET Core, che non è presente.A common failure condition is the app is misconfigured due to targeting a version of the ASP.NET Core shared framework that isn't present. Controllare le versioni del framework condiviso ASP.NET Core installate nel computer di destinazione.Check which versions of the ASP.NET Core shared framework are installed on the target machine. Il framework condiviso è il set di assembly (file DLL) che vengono installati nel computer e cui fa riferimento un metapacchetto, ad esempio Microsoft.AspNetCore.App.The shared framework is the set of assemblies (.dll files) that are installed on the machine and referenced by a metapackage such as Microsoft.AspNetCore.App. Il riferimento del metapacchetto può specificare una versione minima richiesta.The metapackage reference can specify a minimum required version. Per altre informazioni, vedere The shared framework (Il framework condiviso).For more information, see The shared framework.

La pagina di errore 502.5 Errore del processo viene restituita quando il processo di lavoro ha esito negativo a causa di un errore di configurazione dell'hosting o dell'app:The 502.5 Process Failure error page is returned when a hosting or app misconfiguration causes the worker process to fail:

Non è stato possibile avviare l'aggiornamento dell'applicazione. Errore: 0x800700c1Failed to start application (ErrorCode '0x800700c1')

EventID: 1010
Source: IIS AspNetCore Module V2
Failed to start application '/LM/W3SVC/6/ROOT/', ErrorCode '0x800700c1'.

L'app non è stata avviata perché non è stato possibile caricarne l'assembly ( .dll).The app failed to start because the app's assembly (.dll) couldn't be loaded.

Questo errore si verifica quando è presente una mancata corrispondenza del numero di bit tra l'app pubblicata e il processo w3wp/iisexpress.This error occurs when there's a bitness mismatch between the published app and the w3wp/iisexpress process.

Verificare che l'impostazione del pool di app a 32 bit sia corretta:Confirm that the app pool's 32-bit setting is correct:

  1. Selezionare il pool di app in Pool di applicazioni di Gestione IIS.Select the app pool in IIS Manager's Application Pools.
  2. Selezionare Impostazioni avanzate in Modifica pool di applicazioni nel pannello Azioni.Select Advanced Settings under Edit Application Pool in the Actions panel.
  3. Impostare Attiva applicazioni a 32 bit:Set Enable 32-Bit Applications:
    • Se si sta sviluppando un'app a 32 bit (x86), impostare il valore su True.If deploying a 32-bit (x86) app, set the value to True.
    • Se si sta sviluppando un'app a 64 bit (x64), impostare il valore su False.If deploying a 64-bit (x64) app, set the value to False.

Verificare che non esista un conflitto tra una <Platform> proprietà di MSBuild nel file di progetto e il bit pubblicato dell'app.Confirm that there isn't a conflict between a <Platform> MSBuild property in the project file and the published bitness of the app.

Reimpostazione della connessioneConnection reset

Se si verifica un errore dopo l'invio delle intestazioni, è troppo tardi perché il server possa inviare un codice 500 Errore interno del server quando si verifica un errore.If an error occurs after the headers are sent, it's too late for the server to send a 500 Internal Server Error when an error occurs. Questo spesso accade quando si verifica un errore durante la serializzazione di oggetti complessi per una risposta.This often happens when an error occurs during the serialization of complex objects for a response. Questo tipo di errore viene visualizzato come un errore di reimpostazione della connessione nel client.This type of error appears as a connection reset error on the client. La registrazione delle applicazioni può consentire di risolvere questi tipi di errori.Application logging can help troubleshoot these types of errors.

Limiti di avvio predefinitiDefault startup limits

Il modulo ASP.NET Core è configurato con un valore predefinito di startupTimeLimit di 120 secondi.The ASP.NET Core Module is configured with a default startupTimeLimit of 120 seconds. Quando si mantiene il valore predefinito, l'avvio di un'app potrebbe richiedere fino a due minuti prima che il modulo registri un errore del processo.When left at the default value, an app may take up to two minutes to start before the module logs a process failure. Per informazioni sulla configurazione del modulo, vedere Attributi dell'elemento aspNetCore.For information on configuring the module, see Attributes of the aspNetCore element.

Risolvere i problemi relativi al servizio app AzureTroubleshoot on Azure App Service

Importante

Versioni di anteprima di ASP.NET Core con il Servizio app di AzureASP.NET Core preview releases with Azure App Service

Le versioni di anteprima di ASP.NET Core non sono distribuite al Servizio app di Azure per impostazione predefinita.ASP.NET Core preview releases aren't deployed to Azure App Service by default. Per ospitare un'applicazione che usa una versione di anteprima di ASP.NET Core, vedere Distribuire la versione di anteprima di ASP.NET Core in Servizio app di Azure.To host an app that uses an ASP.NET Core preview release, see Deploy ASP.NET Core preview release to Azure App Service.

Registro eventi applicazioni (servizio app Azure)Application Event Log (Azure App Service)

Per accedere al log eventi dell'applicazione, usare il pannello Diagnostica e risolvi i problemi nel portale di Azure:To access the Application Event Log, use the Diagnose and solve problems blade in the Azure portal:

  1. Nel portale di Azure aprire l'app in Servizi app.In the Azure portal, open the app in App Services.
  2. Selezionare Diagnostica e risolvi i problemi.Select Diagnose and solve problems.
  3. Selezionare l'intestazione Strumenti di diagnostica.Select the Diagnostic Tools heading.
  4. In Strumenti di supporto selezionare il pulsante Eventi dell'applicazione.Under Support Tools, select the Application Events button.
  5. Esaminare l'errore più recente dalla voce IIS AspNetCoreModule o IIS AspNetCoreModule V2 nella colonna Origine.Examine the latest error provided by the IIS AspNetCoreModule or IIS AspNetCoreModule V2 entry in the Source column.

Un'alternativa all'uso del pannello Diagnostica e risolvi i problemi consiste nell'esaminare direttamente il file del log eventi dell'applicazione usando Kudu:An alternative to using the Diagnose and solve problems blade is to examine the Application Event Log file directly using Kudu:

  1. Aprire Strumenti avanzati nell'area Strumenti di sviluppo.Open Advanced Tools in the Development Tools area. Selezionare il pulsante Vai→ .Select the Go→ button. Verrà aperta la console Kudu in una nuova scheda o finestra del browser.The Kudu console opens in a new browser tab or window.
  2. Usando la barra di spostamento nella parte superiore della pagina, aprire Console di debug e selezionare CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  3. Aprire la cartella LogFiles.Open the LogFiles folder.
  4. Selezionare l'icona della matita accanto al file eventlog.xml.Select the pencil icon next to the eventlog.xml file.
  5. Esaminare il log.Examine the log. Scorrere fino alla fine del log per visualizzare gli eventi più recenti.Scroll to the bottom of the log to see the most recent events.

Eseguire l'app nella console KuduRun the app in the Kudu console

Molti errori di avvio non producono informazioni utili nel log eventi dell'applicazione.Many startup errors don't produce useful information in the Application Event Log. È possibile eseguire l'app nella console di esecuzione remota Kudu per individuare l'errore:You can run the app in the Kudu Remote Execution Console to discover the error:

  1. Aprire Strumenti avanzati nell'area Strumenti di sviluppo.Open Advanced Tools in the Development Tools area. Selezionare il pulsante Vai→ .Select the Go→ button. Verrà aperta la console Kudu in una nuova scheda o finestra del browser.The Kudu console opens in a new browser tab or window.
  2. Usando la barra di spostamento nella parte superiore della pagina, aprire Console di debug e selezionare CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.

Test di un'app a 32 bit (x86)Test a 32-bit (x86) app

Versione correnteCurrent release

  1. cd d:\home\site\wwwroot
  2. Eseguire l'app:Run the app:

L'output della console per l'app, in cui sono indicati gli eventuali errori, verrà inviato alla console Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Distribuzione dipendente dal Framework in esecuzione in una versione di anteprimaFramework-dependent deployment running on a preview release

Richiede l'installazione dell'estensione del sito del runtime ASP.NET Core {VERSION} (x86).Requires installing the ASP.NET Core {VERSION} (x86) Runtime site extension.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ({X.Y} è la versione di runtime)cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x32 ({X.Y} is the runtime version)
  2. Eseguire l'app. dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dllRun the app: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

L'output della console per l'app, in cui sono indicati gli eventuali errori, verrà inviato alla console Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Test di un'app a 64 bit (x64)Test a 64-bit (x64) app

Versione correnteCurrent release

L'output della console per l'app, in cui sono indicati gli eventuali errori, verrà inviato alla console Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Distribuzione dipendente dal Framework in esecuzione in una versione di anteprimaFramework-dependent deployment running on a preview release

Richiede l'installazione dell'estensione del sito del runtime ASP.NET Core {VERSION} (x64).Requires installing the ASP.NET Core {VERSION} (x64) Runtime site extension.

  1. cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ({X.Y} è la versione di runtime)cd D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64 ({X.Y} is the runtime version)
  2. Eseguire l'app. dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dllRun the app: dotnet \home\site\wwwroot\{ASSEMBLY NAME}.dll

L'output della console per l'app, in cui sono indicati gli eventuali errori, verrà inviato alla console Kudu.The console output from the app, showing any errors, is piped to the Kudu console.

Log stdout del modulo ASP.NET Core (servizio app Azure)ASP.NET Core Module stdout log (Azure App Service)

Il log stdout del modulo ASP.NET Core spesso registra utili messaggi di errore non disponibili nel log eventi dell'applicazione.The ASP.NET Core Module stdout log often records useful error messages not found in the Application Event Log. Per abilitare e visualizzare i log stdout:To enable and view stdout logs:

  1. Passare al pannello Diagnostica e risolvi i problemi nel portale di Azure.Navigate to the Diagnose and solve problems blade in the Azure portal.
  2. In SELECT PROBLEM CATEGORY (SELEZIONARE LA CATEGORIA DEL PROBLEMA) selezionare il pulsante Web App Down (App Web inattiva).Under SELECT PROBLEM CATEGORY, select the Web App Down button.
  3. In Suggested Solutions (Soluzioni consigliate) > Enable Stdout Log Redirection (Abilita il reindirizzamento del log Stdout) selezionare il pulsante Open Kudu Console to edit Web.Config (Apri la console Kudu per modificare Web.Config).Under Suggested Solutions > Enable Stdout Log Redirection, select the button to Open Kudu Console to edit Web.Config.
  4. Nella console diagnostica Kudu aprire le cartelle nel percorso site > wwwroot.In the Kudu Diagnostic Console, open the folders to the path site > wwwroot. Scorrere verso il basso fino a visualizzare il file web.config in fondo all'elenco.Scroll down to reveal the web.config file at the bottom of the list.
  5. Fare clic sull'icona della matita accanto al file web.config.Click the pencil icon next to the web.config file.
  6. Impostare stdoutLogEnabled su true e cambiare il percorso di stdoutLogFile in: \\?\%home%\LogFiles\stdout.Set stdoutLogEnabled to true and change the stdoutLogFile path to: \\?\%home%\LogFiles\stdout.
  7. Selezionare Salva per salvare il file web.config aggiornato.Select Save to save the updated web.config file.
  8. Effettuare una richiesta all'app.Make a request to the app.
  9. Tornare al portale di Azure.Return to the Azure portal. Selezionare il pannello Strumenti avanzati nell'area STRUMENTI DI SVILUPPO.Select the Advanced Tools blade in the DEVELOPMENT TOOLS area. Selezionare il pulsante Vai→ .Select the Go→ button. Verrà aperta la console Kudu in una nuova scheda o finestra del browser.The Kudu console opens in a new browser tab or window.
  10. Usando la barra di spostamento nella parte superiore della pagina, aprire Console di debug e selezionare CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  11. Selezionare la cartella LogFiles.Select the LogFiles folder.
  12. Controllare la colonna Data modifica e selezionare l'icona della matita per modificare il log stdout con la data di modifica più recente.Inspect the Modified column and select the pencil icon to edit the stdout log with the latest modification date.
  13. Quando si apre il file di log, verrà visualizzato l'errore.When the log file opens, the error is displayed.

Al termine della risoluzione dei problemi, disabilitare la registrazione stdout:Disable stdout logging when troubleshooting is complete:

  1. Nella console diagnostica Kudu tornare al percorso site > wwwroot per visualizzare il file web.config.In the Kudu Diagnostic Console, return to the path site > wwwroot to reveal the web.config file. Aprire nuovamente il file web.config selezionando l'icona della matita.Open the web.config file again by selecting the pencil icon.
  2. Impostare stdoutLogEnabled su false.Set stdoutLogEnabled to false.
  3. Selezionare Salva per salvare il file.Select Save to save the file.

Per altre informazioni, vedere Modulo ASP.NET Core.For more information, see Modulo ASP.NET Core.

Avviso

La mancata disabilitazione del log stdout può causare un errore dell'app o del server.Failure to disable the stdout log can lead to app or server failure. Non esiste alcun limite per le dimensioni dei file di log o il numero di file di log che è possibile creare.There's no limit on log file size or the number of log files created. Usare la registrazione stdout solo per la risoluzione dei problemi di avvio delle app.Only use stdout logging to troubleshoot app startup problems.

Per la registrazione generale in un'app ASP.NET Core dopo l'avvio, usare una libreria di registrazione che limita le dimensioni dei file di log e ne esegue la rotazione.For general logging in an ASP.NET Core app after startup, use a logging library that limits log file size and rotates logs. Per altre informazioni, vedere Provider di registrazione di terze parti.For more information, see third-party logging providers.

Log di debug del modulo ASP.NET Core (servizio app Azure)ASP.NET Core Module debug log (Azure App Service)

Il log di debug del modulo ASP.NET Core fornisce dati di registrazione aggiuntivi e più approfonditi dal modulo ASP.NET Core.The ASP.NET Core Module debug log provides additional, deeper logging from the ASP.NET Core Module. Per abilitare e visualizzare i log stdout:To enable and view stdout logs:

  1. Per abilitare il log di diagnostica avanzato, eseguire le operazioni seguenti:To enable the enhanced diagnostic log, perform either of the following:
    • Seguire le istruzioni in Log di diagnostica avanzati per configurare l'app per la registrazione di diagnostica avanzata.Follow the instructions in Enhanced diagnostic logs to configure the app for an enhanced diagnostic logging. Ridistribuire l'app.Redeploy the app.
    • Aggiungere le impostazioni <handlerSettings> indicate in Log di diagnostica avanzati al file web.config dell'app distribuita, usando la console Kudu:Add the <handlerSettings> shown in Enhanced diagnostic logs to the live app's web.config file using the Kudu console:
      1. Aprire Strumenti avanzati nell'area Strumenti di sviluppo.Open Advanced Tools in the Development Tools area. Selezionare il pulsante Vai→ .Select the Go→ button. Verrà aperta la console Kudu in una nuova scheda o finestra del browser.The Kudu console opens in a new browser tab or window.
      2. Usando la barra di spostamento nella parte superiore della pagina, aprire Console di debug e selezionare CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
      3. Aprire le cartelle nel percorso site > wwwroot.Open the folders to the path site > wwwroot. Modificare il file web.config selezionando il pulsante a forma di matita.Edit the web.config file by selecting the pencil button. Aggiungere la sezione <handlerSettings> come illustrato in Log di diagnostica avanzati.Add the <handlerSettings> section as shown in Enhanced diagnostic logs. Selezionare il pulsante Salva.Select the Save button.
  2. Aprire Strumenti avanzati nell'area Strumenti di sviluppo.Open Advanced Tools in the Development Tools area. Selezionare il pulsante Vai→ .Select the Go→ button. Verrà aperta la console Kudu in una nuova scheda o finestra del browser.The Kudu console opens in a new browser tab or window.
  3. Usando la barra di spostamento nella parte superiore della pagina, aprire Console di debug e selezionare CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  4. Aprire le cartelle nel percorso site > wwwroot.Open the folders to the path site > wwwroot. Se non è stato specificato un percorso per il file aspnetcore-debug.log, il file viene visualizzato nell'elenco.If you didn't supply a path for the aspnetcore-debug.log file, the file appears in the list. Se è stato specificato un percorso, passare al percorso del file di log.If you supplied a path, navigate to the location of the log file.
  5. Aprire il file di log con il pulsante a forma di matita accanto al nome del file.Open the log file with the pencil button next to the file name.

Al termine della risoluzione dei problemi, disabilitare la registrazione di debug:Disable debug logging when troubleshooting is complete:

Per disabilitare il log di debug avanzato, eseguire le operazioni seguenti:To disable the enhanced debug log, perform either of the following:

  • Rimuovere <handlerSettings> dal file web.config in locale e ridistribuire l'app.Remove the <handlerSettings> from the web.config file locally and redeploy the app.
  • Usare la console Kudu per modificare il file web.config e rimuovere la sezione <handlerSettings>.Use the Kudu console to edit the web.config file and remove the <handlerSettings> section. Salvare il file.Save the file.

Per altre informazioni, vedere Modulo ASP.NET Core.For more information, see Modulo ASP.NET Core.

Avviso

La mancata disabilitazione del log di debug può causare un errore dell'app o del server.Failure to disable the debug log can lead to app or server failure. Non è previsto alcun limite per le dimensioni del file di log.There's no limit on log file size. Usare solo la registrazione di debug per la risoluzione dei problemi di avvio delle app.Only use debug logging to troubleshoot app startup problems.

Per la registrazione generale in un'app ASP.NET Core dopo l'avvio, usare una libreria di registrazione che limita le dimensioni dei file di log e ne esegue la rotazione.For general logging in an ASP.NET Core app after startup, use a logging library that limits log file size and rotates logs. Per altre informazioni, vedere Provider di registrazione di terze parti.For more information, see third-party logging providers.

App lenta o sospesa (servizio app Azure)Slow or hanging app (Azure App Service)

Quando un'app risponde lentamente o si blocca durante una richiesta, vedere gli articoli seguenti:When an app responds slowly or hangs on a request, see the following articles:

Pannelli di monitoraggioMonitoring blades

I pannelli di monitoraggio forniscono un'esperienza di risoluzione dei problemi alternativa ai metodi descritti in precedenza in questo argomento.Monitoring blades provide an alternative troubleshooting experience to the methods described earlier in the topic. È possibile usare questi pannelli per diagnosticare gli errori della serie 500.These blades can be used to diagnose 500-series errors.

Verificare che le estensioni di ASP.NET Core siano installate.Confirm that the ASP.NET Core Extensions are installed. Se le estensioni non sono installate, installarle manualmente:If the extensions aren't installed, install them manually:

  1. Nella sezione del pannello STRUMENTI DI SVILUPPO selezionare il pannello Estensioni.In the DEVELOPMENT TOOLS blade section, select the Extensions blade.
  2. Nell'elenco dovrebbe essere visualizzato ASP.NET Core Extensions (Estensioni ASP.NET Core).The ASP.NET Core Extensions should appear in the list.
  3. Se le estensioni non sono installate, selezionare il pulsante Aggiungi.If the extensions aren't installed, select the Add button.
  4. Scegliere ASP.NET Core Extensions (Estensioni ASP.NET Core) dall'elenco.Choose the ASP.NET Core Extensions from the list.
  5. Selezionare OK per accettare le condizioni legali.Select OK to accept the legal terms.
  6. Selezionare OK nel pannello Aggiungi estensione.Select OK on the Add extension blade.
  7. Un messaggio popup informativo indica quando le estensioni sono state installate correttamente.An informational pop-up message indicates when the extensions are successfully installed.

Se la registrazione stdout non è abilitata, attenersi ai passaggi riportati di seguito:If stdout logging isn't enabled, follow these steps:

  1. Nel portale di Azure selezionare il pannello Strumenti avanzati nell'area STRUMENTI DI SVILUPPO.In the Azure portal, select the Advanced Tools blade in the DEVELOPMENT TOOLS area. Selezionare il pulsante Vai→ .Select the Go→ button. Verrà aperta la console Kudu in una nuova scheda o finestra del browser.The Kudu console opens in a new browser tab or window.
  2. Usando la barra di spostamento nella parte superiore della pagina, aprire Console di debug e selezionare CMD.Using the navigation bar at the top of the page, open Debug console and select CMD.
  3. Aprire le cartelle nel percorso site > wwwroot e scorrere verso il basso fino a visualizzare il file web.config in fondo all'elenco.Open the folders to the path site > wwwroot and scroll down to reveal the web.config file at the bottom of the list.
  4. Fare clic sull'icona della matita accanto al file web.config.Click the pencil icon next to the web.config file.
  5. Impostare stdoutLogEnabled su true e cambiare il percorso di stdoutLogFile in: \\?\%home%\LogFiles\stdout.Set stdoutLogEnabled to true and change the stdoutLogFile path to: \\?\%home%\LogFiles\stdout.
  6. Selezionare Salva per salvare il file web.config aggiornato.Select Save to save the updated web.config file.

Passare all'attivazione della registrazione diagnostica:Proceed to activate diagnostic logging:

  1. Nel portale di Azure selezionare il pannello Log di diagnostica.In the Azure portal, select the Diagnostics logs blade.
  2. Selezionare l'interruttore Attivato per Registrazione applicazioni (file system) e Messaggi di errore dettagliati.Select the On switch for Application Logging (Filesystem) and Detailed error messages. Selezionare il pulsante Salva nella parte superiore del pannello.Select the Save button at the top of the blade.
  3. Per includere la traccia delle richieste non riuscite, anche nota come registrazione FREB (Failed Request Event Buffering), selezionare l'interruttore Attivato per Traccia delle richieste non riuscite.To include failed request tracing, also known as Failed Request Event Buffering (FREB) logging, select the On switch for Failed request tracing.
  4. Selezionare il pannello Flusso di registrazione, immediatamente sotto il pannello Log di diagnostica nel portale.Select the Log stream blade, which is listed immediately under the Diagnostics logs blade in the portal.
  5. Effettuare una richiesta all'app.Make a request to the app.
  6. Nei dati del flusso di registrazione viene indicata la causa dell'errore.Within the log stream data, the cause of the error is indicated.

Al termine della risoluzione dei problemi, assicurarsi di disabilitare la registrazione stdout.Be sure to disable stdout logging when troubleshooting is complete.

Per visualizzare i log di traccia delle richieste non riuscite (log FREB):To view the failed request tracing logs (FREB logs):

  1. Passare al pannello Diagnostica e risolvi i problemi nel portale di Azure.Navigate to the Diagnose and solve problems blade in the Azure portal.
  2. Selezionare Failed Request Tracing Logs (Log di traccia delle richieste non riuscite) nell'area STRUMENTI DI SUPPORTO della barra laterale.Select Failed Request Tracing Logs from the SUPPORT TOOLS area of the sidebar.

Per altre informazioni, vedere la sezione relativa alla traccia delle richieste non riuscite nell'argomento Abilitare la registrazione diagnostica per le app Web nel servizio app di Azure e Domande frequenti sulle prestazioni delle applicazioni in App Web di Azure: Come si abilita la traccia delle richieste non riuscite?.See Failed request traces section of the Enable diagnostics logging for web apps in Azure App Service topic and the Application performance FAQs for Web Apps in Azure: How do I turn on failed request tracing? for more information.

Per altre informazioni, vedere Abilitare la registrazione diagnostica per le app Web nel servizio app di Azure.For more information, see Enable diagnostics logging for web apps in Azure App Service.

Avviso

La mancata disabilitazione del log stdout può causare un errore dell'app o del server.Failure to disable the stdout log can lead to app or server failure. Non esiste alcun limite per le dimensioni dei file di log o il numero di file di log che è possibile creare.There's no limit on log file size or the number of log files created.

Per la registrazione di routine in un'app ASP.NET Core, usare una libreria di registrazione che limita le dimensioni dei file di log e ne esegue la rotazione.For routine logging in an ASP.NET Core app, use a logging library that limits log file size and rotates logs. Per altre informazioni, vedere Provider di registrazione di terze parti.For more information, see third-party logging providers.

Risoluzione dei problemi in IISTroubleshoot on IIS

Registro eventi applicazioni (IIS)Application Event Log (IIS)

Accedere al log eventi dell'applicazione:Access the Application Event Log:

  1. Aprire il menu Start, cercare Visualizzatore eventi e quindi selezionare l'app Visualizzatore eventi.Open the Start menu, search for Event Viewer, and then select the Event Viewer app.
  2. In Visualizzatore eventi aprire il nodo Registri di Windows.In Event Viewer, open the Windows Logs node.
  3. Selezionare Applicazione per aprire il log eventi dell'applicazione.Select Application to open the Application Event Log.
  4. Cercare gli errori associati all'app in cui si è verificato il problema.Search for errors associated with the failing app. Gli errori presentano un valore Modulo AspNetCore IIS o Modulo AspNetCore IIS Express nella colonna Origine.Errors have a value of IIS AspNetCore Module or IIS Express AspNetCore Module in the Source column.

Eseguire l'app da un prompt dei comandiRun the app at a command prompt

Molti errori di avvio non producono informazioni utili nel log eventi dell'applicazione.Many startup errors don't produce useful information in the Application Event Log. È possibile individuare la causa di alcuni errori eseguendo l'app da un prompt dei comandi nel sistema host.You can find the cause of some errors by running the app at a command prompt on the hosting system.

Distribuzione dipendente dal frameworkFramework-dependent deployment

Se l'app è una distribuzione dipendente dal framework:If the app is a framework-dependent deployment:

  1. Da un prompt dei comandi passare alla cartella di distribuzione e avviare l'app eseguendo l'assembly dell'app con dotnet.exe.At a command prompt, navigate to the deployment folder and run the app by executing the app's assembly with dotnet.exe. Nel comando seguente sostituire <assembly_name> con il nome dell'assembly dell'app: dotnet .\<assembly_name>.dll.In the following command, substitute the name of the app's assembly for <assembly_name>: dotnet .\<assembly_name>.dll.
  2. L'output della console per l'app, in cui sono indicati gli eventuali errori, verrà scritto nella finestra della console.The console output from the app, showing any errors, is written to the console window.
  3. Se gli errori si verificano quando si effettua una richiesta all'app, effettuare una richiesta all'host e alla porta su cui è in ascolto Kestrel.If the errors occur when making a request to the app, make a request to the host and port where Kestrel listens. Usando l'host e la porta predefiniti, effettuare una richiesta a http://localhost:5000/.Using the default host and post, make a request to http://localhost:5000/. Se l'app risponde normalmente nell'indirizzo endpoint di Kestrel, è più probabile che il problema sia associato alla configurazione dell'host e che non sia interno all'app.If the app responds normally at the Kestrel endpoint address, the problem is more likely related to the hosting configuration and less likely within the app.

Distribuzione autonomaSelf-contained deployment

Se l'app è una distribuzione autonoma:If the app is a self-contained deployment:

  1. Da un prompt dei comandi passare alla cartella di distribuzione e avviare il file eseguibile dell'app.At a command prompt, navigate to the deployment folder and run the app's executable. Nel comando seguente sostituire <assembly_name> con il nome dell'assembly dell'app: <assembly_name>.exe.In the following command, substitute the name of the app's assembly for <assembly_name>: <assembly_name>.exe.
  2. L'output della console per l'app, in cui sono indicati gli eventuali errori, verrà scritto nella finestra della console.The console output from the app, showing any errors, is written to the console window.
  3. Se gli errori si verificano quando si effettua una richiesta all'app, effettuare una richiesta all'host e alla porta su cui è in ascolto Kestrel.If the errors occur when making a request to the app, make a request to the host and port where Kestrel listens. Usando l'host e la porta predefiniti, effettuare una richiesta a http://localhost:5000/.Using the default host and post, make a request to http://localhost:5000/. Se l'app risponde normalmente nell'indirizzo endpoint di Kestrel, è più probabile che il problema sia associato alla configurazione dell'host e che non sia interno all'app.If the app responds normally at the Kestrel endpoint address, the problem is more likely related to the hosting configuration and less likely within the app.

Log stdout del modulo ASP.NET Core (IIS)ASP.NET Core Module stdout log (IIS)

Per abilitare e visualizzare i log stdout:To enable and view stdout logs:

  1. Passare alla cartella di distribuzione del sito nel sistema host.Navigate to the site's deployment folder on the hosting system.
  2. Se la cartella logs non è presente, creare la cartella.If the logs folder isn't present, create the folder. Per istruzioni su come impostare MSBuild per la creazione automatica della cartella logs nella distribuzione, vedere l'argomento Struttura della directory.For instructions on how to enable MSBuild to create the logs folder in the deployment automatically, see the Directory structure topic.
  3. Modificare il file web.config.Edit the web.config file. Impostare stdoutLogEnabled su true e modificare il percorso di stdoutLogFile in modo da fare riferimento alla cartella logs, ad esempio .\logs\stdout.Set stdoutLogEnabled to true and change the stdoutLogFile path to point to the logs folder (for example, .\logs\stdout). stdout nel percorso è il prefisso del nome del file di log.stdout in the path is the log file name prefix. Un timestamp, l'ID del processo e l'estensione del file vengono aggiunti automaticamente al momento della creazione del log.A timestamp, process id, and file extension are added automatically when the log is created. Usando stdout come prefisso del nome del file, un tipico file di log è denominato stdout_20180205184032_5412.log.Using stdout as the file name prefix, a typical log file is named stdout_20180205184032_5412.log.
  4. Assicurarsi che l'identità del pool di applicazioni disponga delle autorizzazioni di scrittura per la cartella logs.Ensure your application pool's identity has write permissions to the logs folder.
  5. Salvare il file web.config aggiornato.Save the updated web.config file.
  6. Effettuare una richiesta all'app.Make a request to the app.
  7. Passare alla cartella logs.Navigate to the logs folder. Trovare e aprire il log stdout più recente.Find and open the most recent stdout log.
  8. Esaminare il log per verificare se sono presenti errori.Study the log for errors.

Al termine della risoluzione dei problemi, disabilitare la registrazione stdout:Disable stdout logging when troubleshooting is complete:

  1. Modificare il file web.config.Edit the web.config file.
  2. Impostare stdoutLogEnabled su false.Set stdoutLogEnabled to false.
  3. Salvare il file.Save the file.

Per altre informazioni, vedere Modulo ASP.NET Core.For more information, see Modulo ASP.NET Core.

Avviso

La mancata disabilitazione del log stdout può causare un errore dell'app o del server.Failure to disable the stdout log can lead to app or server failure. Non esiste alcun limite per le dimensioni dei file di log o il numero di file di log che è possibile creare.There's no limit on log file size or the number of log files created.

Per la registrazione di routine in un'app ASP.NET Core, usare una libreria di registrazione che limita le dimensioni dei file di log e ne esegue la rotazione.For routine logging in an ASP.NET Core app, use a logging library that limits log file size and rotates logs. Per altre informazioni, vedere Provider di registrazione di terze parti.For more information, see third-party logging providers.

Log di debug del modulo ASP.NET Core (IIS)ASP.NET Core Module debug log (IIS)

Aggiungere le impostazioni del gestore seguenti al file Web. config dell'app per abilitare il log di debug del modulo ASP.NET Core:Add the following handler settings to the app's web.config file to enable ASP.NET Core Module debug log:

<aspNetCore ...>
  <handlerSettings>
    <handlerSetting name="debugLevel" value="file" />
    <handlerSetting name="debugFile" value="c:\temp\ancm.log" />
  </handlerSettings>
</aspNetCore>

Verificare che il percorso specificato per il log esista e che l'identità del pool di applicazioni abbia le autorizzazioni di scrittura nel percorso.Confirm that the path specified for the log exists and that the app pool's identity has write permissions to the location.

Per altre informazioni, vedere Modulo ASP.NET Core.For more information, see Modulo ASP.NET Core.

Abilitare la pagina delle eccezioni per gli sviluppatoriEnable the Developer Exception Page

La variabile di ambiente ASPNETCORE_ENVIRONMENT può essere aggiunta a web.config per eseguire l'app nell'ambiente di sviluppo.The ASPNETCORE_ENVIRONMENT environment variable can be added to web.config to run the app in the Development environment. Purché l'ambiente non sia sottoposto a override durante l'avvio dell'app tramite UseEnvironment nel generatore di host, l'impostazione della variabile di ambiente consente di visualizzare la pagina delle eccezioni per gli sviluppatori quando viene eseguita l'app.As long as the environment isn't overridden in app startup by UseEnvironment on the host builder, setting the environment variable allows the Developer Exception Page to appear when the app is run.

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout"
      hostingModel="InProcess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>
<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile=".\logs\stdout">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>

L'impostazione della variabile di ambiente per ASPNETCORE_ENVIRONMENT è consigliata solo per l'uso in server di gestione temporanea e test non esposti a Internet.Setting the environment variable for ASPNETCORE_ENVIRONMENT is only recommended for use on staging and testing servers that aren't exposed to the Internet. Al termine della risoluzione dei problemi, rimuovere la variabile di ambiente dal file web.config.Remove the environment variable from the web.config file after troubleshooting. Per informazioni sull'impostazione delle variabili di ambiente in web.config, vedere elemento figlio environmentVariables di aspNetCore.For information on setting environment variables in web.config, see environmentVariables child element of aspNetCore.

Ottenere dati da un'appObtain data from an app

Se un'app è in grado di rispondere alle richieste, è possibile ottenere dati sulle richieste, le connessioni e altri dati dall'app tramite middleware inline di terminale.If an app is capable of responding to requests, obtain request, connection, and additional data from the app using terminal inline middleware. Per altre informazioni e codice di esempio, vedere Risolvere i problemi relativi ai progetti ASP.NET Core.For more information and sample code, see Risolvere i problemi relativi ai progetti ASP.NET Core.

App lenta o sospesa (IIS)Slow or hanging app (IIS)

Un dump di arresto anomalo del sistema è uno snapshot della memoria del sistema e può contribuire a determinare la provocazione di un arresto anomalo dell'app, dell'avvio o dell'applicazione lenta.A crash dump is a snapshot of the system's memory and can help determine the cause of an app crash, startup failure, or slow app.

Arresto anomalo o eccezione di un'appApp crashes or encounters an exception

Ottenere e analizzare un dump da Segnalazione errori Windows:Obtain and analyze a dump from Windows Error Reporting (WER):

  1. Creare una cartella per i file dump di arresto anomalo del sistema in c:\dumps.Create a folder to hold crash dump files at c:\dumps. Il pool di app deve avere accesso in scrittura alla cartella.The app pool must have write access to the folder.

  2. Eseguire lo script di PowerShell EnableDumps:Run the EnableDumps PowerShell script:

  3. Eseguire l'app nelle condizioni che causano l'arresto anomalo.Run the app under the conditions that cause the crash to occur.

  4. Dopo che si è verificato l'arresto anomalo, eseguire lo script di PowerShell DisableDumps:After the crash has occurred, run the DisableDumps PowerShell script:

Dopo l'arresto anomalo di un'app e la raccolta dei dump, l'app può terminare normalmente.After an app crashes and dump collection is complete, the app is allowed to terminate normally. Lo script di PowerShell configura Segnalazione errori Windows per raccogliere fino a cinque dump per ogni app.The PowerShell script configures WER to collect up to five dumps per app.

Avviso

I dump di arresto anomalo del sistema potrebbero richiedere una grande quantità di spazio su disco (fino a diversi gigabyte ognuno).Crash dumps might take up a large amount of disk space (up to several gigabytes each).

L'app si blocca, si verifica un errore durante l'avvio o viene eseguita normalmenteApp hangs, fails during startup, or runs normally

Quando un'app si blocca (smette di rispondere ma senza arresto anomalo), si verifica un errore durante l'avvio o viene eseguita normalmente, vedere User-Mode Dump Files: Choosing the Best Tool (File dump in modalità utente: scelta dello strumento migliore) per selezionare uno strumento appropriato per produrre il dump.When an app hangs (stops responding but doesn't crash), fails during startup, or runs normally, see User-Mode Dump Files: Choosing the Best Tool to select an appropriate tool to produce the dump.

Analizzare il dumpAnalyze the dump

È possibile analizzare un dump usando diversi approcci.A dump can be analyzed using several approaches. Per altre informazioni, vedere Analyzing a User-Mode Dump File (Analisi di un file dump in modalità utente).For more information, see Analyzing a User-Mode Dump File.

Cancella cache di pacchettiClear package caches

A volte un'app funzionante ha esito negativo immediatamente dopo l'aggiornamento del .NET Core SDK nel computer di sviluppo o la modifica delle versioni del pacchetto all'interno dell'app.Sometimes a functioning app fails immediately after upgrading either the .NET Core SDK on the development machine or changing package versions within the app. In alcuni casi i pacchetti incoerenti possono interrompere un'app quando si eseguono aggiornamenti principali.In some cases, incoherent packages may break an app when performing major upgrades. La maggior parte di questi problemi può essere risolta attenendosi alle istruzioni seguenti:Most of these issues can be fixed by following these instructions:

  1. Eliminare le cartelle bin e obj.Delete the bin and obj folders.

  2. Cancellare le cache dotnet nuget locals all --clear dei pacchetti eseguendo da una shell dei comandi.Clear the package caches by executing dotnet nuget locals all --clear from a command shell.

    La cancellazione delle cache dei pacchetti può essere eseguita anche con lo strumento NuGet. exe ed eseguendo il nuget locals all -clearcomando.Clearing package caches can also be accomplished with the nuget.exe tool and executing the command nuget locals all -clear. nuget.exe non è un'installazione inclusa con il sistema operativo desktop Windows e deve essere ottenuta separatamente dal sito Web NuGet.nuget.exe isn't a bundled install with the Windows desktop operating system and must be obtained separately from the NuGet website.

  3. Ripristinare e ricompilare il progetto.Restore and rebuild the project.

  4. Eliminare tutti i file nella cartella di distribuzione nel server prima di ridistribuire l'app.Delete all of the files in the deployment folder on the server prior to redeploying the app.

Risorse aggiuntiveAdditional resources

Documentazione di AzureAzure documentation

Documentazione di Visual StudioVisual Studio documentation

Documentazione di Visual Studio CodeVisual Studio Code documentation