Eseguire il debug di app ASP.NET o ASP.NET Core in Visual Studio

È possibile eseguire il debug di app ASP.NET e ASP.NET Core in Visual Studio. Il processo è diverso tra ASP.NET e ASP.NET Core e se viene eseguito in IIS Express o in un server IIS locale.

Nota

I passaggi e le impostazioni seguenti si applicano solo alle app di debug in un server locale. Il debug delle app in un server IIS remoto usa Connetti a processo e ignora queste impostazioni. Per altre informazioni e istruzioni per il debug remoto ASP.NET app in IIS, vedere Remote debug ASP.NET in un computer IIS o Remote debug ASP.NET Core in un computer IIS remoto.

I server Kestrel e IIS Express predefiniti sono inclusi in Visual Studio. Kestrel è il server di debug predefinito per ASP.NET progetti Core ed è preconfigurato. IIS Express è il server di debug predefinito per ASP.NET.

Il server IIS Express predefinito è incluso in Visual Studio. IIS Express è il server di debug predefinito per i progetti ASP.NET e ASP.NET Core ed è preconfigurato. È il modo più semplice per eseguire il debug e ideale per il debug iniziale e il test.

Per ASP.NET Core, è anche possibile eseguire il debug nel server Web Kestrel.

Prerequisiti per il server IIS locale

È anche possibile eseguire il debug di un'app ASP.NET o ASP.NET Core in un server IIS locale (versione 8.0 o successiva) configurato per eseguire l'app. Per eseguire il debug in IIS locale, è necessario soddisfare i requisiti seguenti:

  • Se non è installato, installare il carico di lavoro ASP.NET e sviluppo Web. Eseguire di nuovo il Programma di installazione di Visual Studio, selezionare Modifica e aggiungere questo carico di lavoro.

  • Eseguire Visual Studio come amministratore.

  • Installare e configurare correttamente IIS con le versioni appropriate di ASP.NET e/o ASP.NET Core. Per altre informazioni sull'uso di IIS con ASP.NET Core, vedere Host ASP.NET Core in Windows con IIS. Per ASP.NET, vedere Installare IIS e moduli ASP.NET.

  • Assicurarsi che l'app venga eseguita in IIS senza errori.

Eseguire il debug di app ASP.NET Core

È possibile che sia presente un profilo predefinito basato su https o uno basato sul nome del progetto, configurato per il server Web Kestrel. Se invece si esegue il debug in IIS locale, assicurarsi di soddisfare i prerequisiti per il debug IIS locale.

  1. Selezionare il progetto ASP.NET Core in Visual Studio Esplora soluzioni e fare clic sull'icona Proprietà oppure premere ALT+INVIO oppure fare clic con il pulsante destro del mouse e scegliere Proprietà.

  2. Selezionare la scheda Debug e fare clic sul collegamento per aprire l'interfaccia utente Apri profili di avvio debug.

    L'interfaccia utente presentata corrisponde alle impostazioni nel file del launchSettings.json progetto. Per altre informazioni su questo file, vedere la sezione Sviluppo e launchSettings.json uso di più ambienti in ASP.NET Core.

  3. Selezionare il profilo da configurare per il debug.

    • Per Kestrel selezionare il profilo https o il profilo denominato dopo il progetto.
    • Per IIS Express selezionare IIS Express nell'elenco a discesa.
    • Per IIS locale, selezionare Nuovo e creare un nuovo profilo IIS.
  4. Assicurarsi che l'opzione Avvia browser sia selezionata.

  5. Assicurarsi che l'URL, l'URL dell'app e l'URL SSL dell'app siano corretti.

    Url specifica il percorso dell'URL host per .NET o .NET Core. Per un profilo denominato dopo il progetto, ovvero la proprietà commandName in launchSettings.json è Project, il server Kestrel rimane in ascolto della porta specificata. Per un profilo IIS, si tratta in genere dello stesso valore dell'URL dell'app. Per altre informazioni, vedere la sezione profilo di avvio di IIS in Configurare il progetto.

    URL app e URL SSL dell'app specificano gli URL dell'applicazione. Per un profilo denominato dopo il progetto, questa proprietà specifica gli URL del server Kestrel, in https://localhost:5001 genere e http://localhost:5000. Per IIS Express, l'URL SSL dell'app è in http://localhost:44334genere .

  6. In Variabili di ambiente assicurarsi che ASPNETCORE_ENVIRONMENT sia presente con il valore Sviluppo. In caso contrario, aggiungere la variabile.

    impostazioni del debugger ASP.NET Core

    Per altre informazioni sulle variabili di ambiente, vedere Ambienti.

  7. Per eseguire il debug dell'app, nel progetto impostare punti di interruzione su un codice. Nella barra degli strumenti di Visual Studio verificare che la configurazione sia impostata su Debug.

  8. Per avviare il debug, selezionare il nome del profilo nella barra degli strumenti, ad esempio https, IIS Express o< il nome> del profilo IIS nella barra degli strumenti, selezionare Avvia debug dal menu Debug o premere F5. Il debugger viene sospeso nei punti di interruzione. Se il debugger non riesce a raggiungere i punti di interruzione, vedere Risolvere i problemi di debug.

Eseguire il debug di app ASP.NET Core

IIS Express è l'impostazione predefinita ed è preconfigurato. Se si esegue il debug in IIS locale, assicurarsi di soddisfare i requisiti per il debug IIS locale.

  1. Selezionare il progetto ASP.NET Core in Visual Studio Esplora soluzioni e fare clic sull'icona Proprietà oppure premere ALT+INVIO oppure fare clic con il pulsante destro del mouse e scegliere Proprietà.

  2. Selezionare la scheda Debug.

  3. Nel riquadro Proprietà accanto a Profilo

    • Per IIS Express selezionare IIS Express nell'elenco a discesa.
    • Per IIS locale, selezionare il nome dell'app nell'elenco a discesa oppure selezionare Nuovo, creare un nuovo nome di profilo e selezionare OK.
  4. Accanto a Avvia selezionare IIS Express o IIS dall'elenco a discesa.

  5. Assicurarsi che l'opzione Avvia browser sia selezionata.

  6. In Variabili di ambiente assicurarsi che ASPNETCORE_ENVIRONMENT sia presente con il valore Sviluppo. In caso contrario, selezionare Aggiungi e aggiungerlo.

    impostazioni del debugger ASP.NET Core

  7. Utilizzare File Save Selected Items (Salva elementi selezionati)>o CTRL+S per salvare le modifiche.

  8. Per eseguire il debug dell'app, nel progetto impostare punti di interruzione su un codice. Nella barra degli strumenti di Visual Studio verificare che la configurazione sia impostata su Debug e che IIS Express o il nuovo nome del profilo IIS venga visualizzato nel campo emulatore.

  9. Per avviare il debug, selezionare IIS Express o IIS profile name (Nome> profilo IIS Express o <IIS) sulla barra degli strumenti, selezionare Avvia debug dal menu Debug oppure premere F5. Il debugger viene sospeso nei punti di interruzione. Se il debugger non riesce a raggiungere i punti di interruzione, vedere Risolvere i problemi di debug.

Eseguire il debug di app ASP.NET

IIS Express è l'impostazione predefinita ed è preconfigurato. Se si esegue il debug in IIS locale, assicurarsi di soddisfare i requisiti per il debug IIS locale.

  1. Selezionare il progetto ASP.NET in Visual Studio Esplora soluzioni e fare clic sull'icona Proprietà oppure premere ALT+INVIO oppure fare clic con il pulsante destro del mouse e scegliere Proprietà.

  2. Selezionare la scheda Web .

    Se la scheda Web non viene visualizzata, vedere Debug ASP.NET App core. La scheda Web viene visualizzata solo per ASP.NET Framework.

  3. Nel riquadro Proprietà, in Server,

    • Per Kestrel selezionare https nell'elenco a discesa.
    • Per IIS Express selezionare IIS Express nell'elenco a discesa.
    • Per IIS locale,
      1. Selezionare IIS locale nell'elenco a discesa.
      2. Accanto al campo URL progetto selezionare Crea directory virtuale, se non è ancora stata configurata l'app in IIS.
  4. In Debugger selezionare ASP.NET.

    Screenshot che mostra ASP.NET impostazioni del debugger.

  5. Scegliere File>Salva elementi selezionati (o premere CTRL+S) per salvare le modifiche.

  6. Per eseguire il debug dell'app, nel progetto impostare punti di interruzione su un codice. Nella barra degli strumenti di Visual Studio verificare che la configurazione sia impostata su Debug e che il browser desiderato venga visualizzato in IIS Express (<nome> browser) o IIS locale (<nome> browser) nel campo emulatore.

  7. Per avviare il debug, selezionare IIS Express (<nome> browser) o IIS locale (<nome> browser) sulla barra degli strumenti, selezionare Avvia debug dal menu Debug oppure premere F5. Il debugger viene sospeso nei punti di interruzione. Se il debugger non riesce a raggiungere i punti di interruzione, vedere Risolvere i problemi di debug.

Risolvere i problemi di esecuzione del debug

Se il debug IIS locale non può passare al punto di interruzione, seguire questa procedura per risolvere i problemi.

  1. Avviare l'app Web da IIS e assicurarsi che venga eseguita correttamente. Lasciare in esecuzione l'app Web.

  2. In Visual Studio selezionare Debug > Collega a processo o premere CTRL+ALT+P e connettersi al processo ASP.NET o ASP.NET Core (in genere w3wp.exe o dotnet.exe). Per altre informazioni, vedere Connetti a processo e Come trovare il nome del processo di ASP.NET.

Se è possibile connettersi e raggiungere il punto di interruzione usando Connetti a processo, ma non tramite Debug>Avvia debug o F5, è probabile che un'impostazione non sia corretta nelle proprietà del progetto. Se si usa un file HOSTS, assicurarsi che sia configurato correttamente.

Configurare il debug nel file web.config

ASP.NET i progetti hanno web.config file per impostazione predefinita, che contengono sia le informazioni di configurazione dell'app che le informazioni di avvio, incluse le impostazioni di debug. I web.config file devono essere configurati correttamente per il debug. Le impostazioni Proprietà nelle sezioni precedenti aggiornano i web.config file, ma è anche possibile configurarli manualmente.

Nota

ASP.NET i progetti Core non hanno web.config inizialmente file, ma usano appsettings.json e launchSettings.json file per la configurazione e l'avvio delle app. La distribuzione dell'app crea un file o file web.config nel progetto, ma in genere non contengono informazioni di debug.

Suggerimento

Il processo di distribuzione può aggiornare le web.config impostazioni, quindi prima di provare a eseguire il debug, assicurarsi che web.config sia configurato per il debug.

Per configurare manualmente un web.config file per il debug:

  1. In Visual Studio aprire il file del progetto ASP.NET web.config .

  2. Web.config è un file XML, quindi contiene sezioni annidate contrassegnate da tag. Individuare la sezione configuration/system.web/compilation. Se l'elemento compilation non esiste, crearlo.

  3. Assicurarsi che l'attributo debug nell'elemento compilation sia impostato su true. Se l'elemento compilation non contiene un debug attributo, aggiungerlo e impostarlo su true.)

    Se si usa IIS locale anziché il server IIS Express predefinito, assicurarsi che il targetFramework valore dell'attributo nell'elemento compilation corrisponda al framework nel server IIS.

    L'elemento compilation del web.config file dovrebbe essere simile all'esempio seguente:

    Nota

    Questo esempio è un file parziale web.config . In genere sono presenti sezioni XML aggiuntive negli configuration elementi e system.web e l'elemento compilation potrebbe contenere anche altri attributi ed elementi.

    <configuration>
       ...
       <system.web>
           <compilation  debug="true"  targetFramework="4.6.1" ... >
              ...
           </compilation>
       </system.web>
    </configuration>
    

ASP.NET rileva automaticamente le modifiche apportate ai web.config file e applica le nuove impostazioni di configurazione. Non è necessario riavviare il computer o il server IIS per rendere effettive le modifiche.

Un sito Web può contenere diverse directory virtuali e sottodirectory, con web.config file in ognuno di essi. ASP.NET le app ereditano le impostazioni di configurazione dai web.config file a livelli più elevati nel percorso URL. Le impostazioni dei file gerarchici web.config si applicano a tutte le app ASP.NET sottostanti nella gerarchia. L'impostazione di una configurazione diversa in un web.config file inferiore nella gerarchia esegue l'override delle impostazioni nel file superiore.

Ad esempio, se si specifica debug="true" in www.microsoft.com/aaa/web.config, qualsiasi app nella aaa cartella o in qualsiasi sottocartella di aaa eredita tale impostazione, tranne se una di queste app esegue l'override dell'impostazione con il proprio web.config file.

Importante

La modalità di debug riduce notevolmente le prestazioni dell'app. Quando si distribuisce un'app di produzione o si eseguono misurazioni delle prestazioni, impostare debug="false" in web.config e specificare una build di rilascio.