Condividi tramite


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 su un server IIS remoto utilizza Collegamento al processoe ignora queste impostazioni. Per altre informazioni e istruzioni per il debug remoto ASP.NET e ASP.NET Core, vedere Debug remoto ASP.NET Core in un computer IIS remotoe Debug remoto del servizio app di Azure.

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 workload ASP.NET e Sviluppo Web. Eseguire di nuovo il programma di installazione di Visual Studio, selezionare Modificae 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 e che venga aperta nel browser.

Eseguire il debug di app ASP.NET Core

Può essere presente un profilo predefinito denominato https o uno basato sul nome del progetto, configurato per il server Web Kestrel. Se invece si esegue il debugging in IIS locale, assicurarsi di soddisfare i prerequisiti per il debug in IIS locale.

  1. Selezionare il progetto ASP.NET Core in Visual Studio Esplora soluzioni e fare clic sull'icona Proprietà oppure premere Alt+Inviooppure 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 di launchSettings.json del progetto. Per altre informazioni su questo file, vedere la sezione Sviluppo e launchSettings.json in Usare 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 Avvia browser sia selezionato.

  5. Assicurarsi che URL, URL dell'Appe URL SSL dell'App siano corretti.

    URL specifica il percorso dell'URL host per .NET Core o .NET 5+. Per un profilo denominato come il progetto (ovvero, la proprietà commandName in launchSettings.json è Project), il server Kestrel ascolta la 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 https, la proprietà URL dell'app è in genere https://localhost:7241;http://localhost:5175.
    • Per un profilo denominato in base al progetto, queste proprietà sono generalmente http://localhost:5000 e https://localhost:5001.
    • Per IIS Express, l'URL SSL dell'app è generalmente impostato su https://localhost:44334.
  6. In Variabili di ambienteverificare che ASPNETCORE_ENVIRONMENT sia presente con il valore Development. 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 Expresso <nome del profilo IIS> nella barra degli strumenti, selezionare Avvia debug dal menu debug oppure premere F5. Il debugger si ferma ai 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 su IIS locale, assicurarsi di soddisfare i requisiti di per il debug su IIS locale.

  1. Selezionare il progetto ASP.NET Core in Visual Studio Esplora soluzioni e fare clic sull'icona Proprietà, oppure premere ALT+Invio, o cliccare 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 Avvio, selezionare IIS Express o IIS dall'elenco a discesa.

  5. Assicurarsi che Avvia il browser sia selezionato.

  6. In Variabili di ambienteverificare che ASPNETCORE_ENVIRONMENT sia presente con il valore Sviluppo. In caso contrario, selezionare Aggiungi per aggiungerlo.

    impostazioni del debugger di ASP.NET Core

  7. Usare File>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 Debuge IIS Expresso il nuovo nome del profilo IIS venga visualizzato nel campo emulatore.

  9. Per avviare il debug, selezionare IIS Express o <> nome del profilo IIS nella barra degli strumenti, selezionare Avvia debug dal menu Debug oppure premere F5. Il debugger si interrompe ai 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 necessari per il debug locale su IIS.

  1. Seleziona il progetto ASP.NET in Visual Studio Esplora soluzioni e fai clic sull'icona Proprietà, oppure premi Alt+Invio, o fai clic con il pulsante destro del mouse e scegli Proprietà.

  2. Selezionare la scheda Web.

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

  3. Nel riquadro delle Proprietà, sotto la sezione Server,

    • Per Kestrel, selezionare https dall'elenco a discesa.
    • Per IIS Express selezionare IIS Express nell'elenco a discesa.
    • Per IIS locale,
      1. Selezionare IIS locale nel menu a discesa.
      2. Accanto al campo URL progetto, selezionare Crea una directory virtualese non hai ancora configurato l'app in IIS.
  4. In Debuggerselezionare ASP.NET.

    Screenshot che mostra le impostazioni del debugger ASP.NET.

  5. Scegliere File>Salva elementi selezionati oppure 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 Debuge 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 si ferma 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 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 al processo oppure premere CTRL+ALT+Pe connettersi al processo ASP.NET o ASP.NET Core (in genere w3wp.exe o dotnet.exe). Per ulteriori informazioni, vedere Allegare al processo e Come trovare il nome del processo ASP.NET.

Se è possibile connettersi e raggiungere il punto di interruzione usando Collega a processo, ma non usando 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

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

Nota

ASP.NET I progetti principali non hanno inizialmente file web.config, 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.

Mancia

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

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

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

  2. Web.config è un file XML, pertanto 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 attributo debug, aggiungerlo e impostarlo su true.)

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

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

    Nota

    Questo esempio è un file di web.config parziale. Esistono in genere sezioni XML aggiuntive negli elementi configuration 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 file di web.config 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 ciascuna di esse. Le applicazioni ASP.NET ereditano le impostazioni di configurazione dai file web.config nei livelli superiori del percorso URL. Le impostazioni del file web.config gerarchico si applicano a tutte le app ASP.NET sottostanti nella gerarchia. L'impostazione di una configurazione diversa in un file web.config 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 cartella aaa o in qualsiasi sottocartella di aaa eredita tale impostazione, tranne se una di queste app esegue l'override dell'impostazione con il proprio file web.config.

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" nella web.config e specificare una build di rilascio.