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.
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à.
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 elaunchSettings.json
in Usare più ambienti in ASP.NET Core.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.
Assicurarsi che Avvia browser sia selezionato.
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
ehttps://localhost:5001
. - Per IIS Express, l'URL SSL dell'app è generalmente impostato su
https://localhost:44334
.
- Per un profilo https, la proprietà URL dell'app è in genere
In Variabili di ambienteverificare che ASPNETCORE_ENVIRONMENT sia presente con il valore Development. In caso contrario, aggiungere la variabile.
Per altre informazioni sulle variabili di ambiente, vedere Ambienti.
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.
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.
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à .
Selezionare la scheda Debug.
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.
Accanto a Avvio, selezionare IIS Express o IIS dall'elenco a discesa.
Assicurarsi che Avvia il browser sia selezionato.
In Variabili di ambienteverificare che ASPNETCORE_ENVIRONMENT sia presente con il valore Sviluppo. In caso contrario, selezionare Aggiungi per aggiungerlo.
Usare File>Salva elementi selezionati o CTRL+S per salvare le modifiche.
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.
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.
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à.
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.
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,
- Selezionare IIS locale nel menu a discesa.
- Accanto al campo URL progetto, selezionare Crea una directory virtualese non hai ancora configurato l'app in IIS.
In Debuggerselezionare ASP.NET.
Scegliere File>Salva elementi selezionati oppure premere CTRL+S) per salvare le modifiche.
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.
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.
Avviare l'app Web da IIS e assicurarsi che venga eseguita correttamente. Lasciare in esecuzione l'app Web.
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:
In Visual Studio aprire il file di
web.config
del progetto di ASP.NET.Web.config
è un file XML, pertanto contiene sezioni annidate contrassegnate da tag. Individuare la sezioneconfiguration/system.web/compilation
. Se l'elementocompilation
non esiste, crearlo.Assicurarsi che l'attributo
debug
nell'elementocompilation
sia impostato sutrue
. Se l'elementocompilation
non contiene un attributodebug
, aggiungerlo e impostarlo sutrue
.)Se si usa IIS locale anziché il server IIS Express predefinito, assicurarsi che il valore dell'attributo
targetFramework
nell'elementocompilation
corrisponda al framework nel server IIS.L'elemento
compilation
del file diweb.config
dovrebbe essere simile all'esempio seguente:Nota
Questo esempio è un file di
web.config
parziale. Esistono in genere sezioni XML aggiuntive negli elementiconfiguration
esystem.web
e l'elementocompilation
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.
Contenuto correlato
- Debugging ASP.NET: requisiti di sistema
- Procedura: Eseguire il processo di lavoro sotto un account utente
- Procedura: Trovare il nome del processo di ASP.NET
- Eseguire il debug di applicazioni Web distribuite
- Procedura: Eseguire il debug di eccezioni ASP.NET
- Eseguire il debug di applicazioni Web: errori e risoluzione dei problemi