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 Aggancio al processoe ignora queste impostazioni. Per ulteriori informazioni e istruzioni per il debug remoto delle app ASP.NET in IIS, vedere Debug remoto di ASP.NET su un computer IIS o Debug remoto di ASP.NET Core su 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 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 senza errori.
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 debug in IIS locale, assicurarsi di soddisfare i prerequisiti di per il debug IIS locale.
Seleziona il progetto ASP.NET Core in Visual Studio Esplora soluzioni e fai clic sull'icona Proprietà, oppure premi Alt+Invio, oppure fai clic con il pulsante destro del mouse e scegli 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, seleziona il profilo https o il profilo che porta il nome del 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.
Assicurati 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 del profilo di avvio di IIS in Configurare il progetto.URL dell'app e URL SSL dell'app specificano gli URL dell'applicazione.
- Per un profilo https
, la proprietà URL dell'app è in genere . - Per un profilo chiamato come il progetto, queste proprietà sono tipicamente
http://localhost:5000
ehttps://localhost:5001
. - Per IIS Express, l'URL SSL dell'app è tipicamente
https://localhost:44334
.
- Per un profilo https
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 Express o nella barra degli strumenti, selezionarenome del profilo IIS Avvia debug dal menu debugoppure 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.
Eseguire il debug di app ASP.NET Core
IIS Express è l'impostazione predefinita ed è preconfigurato. Se stai eseguendo il debug su IIS locale, assicurati di soddisfare i requisiti 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, oppure fare clic 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 Lancio, selezionare IIS Express o IIS dall'elenco a discesa.
Assicurati che Avvia browser sia selezionato.
In Variabili di ambienteverificare che ASPNETCORE_ENVIRONMENT sia presente con il valore Development. In caso contrario, selezionare Aggiungi e confermare l'aggiunta.
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, selezionareAvvia debug dal menu Debugoppure 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 state eseguendo il debug in IIS locale, assicuratevi di soddisfare i requisiti di per il debug IIS locale.
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 le Proprietà .
Selezionare la scheda Web.
Se la scheda Web non viene visualizzata, consulta Debug ASP.NET Core apps. La scheda Web viene visualizzata solo per ASP.NET Framework.
Nel riquadro Proprietà, sotto Server,
- Per Kestrel, selezionare https dall'elenco a discesa.
- Per IIS Express selezionare IIS Express nell'elenco a discesa.
- Per IIS locale,
- Selezionare la voce Local IIS nell'elenco a discesa.
- Accanto al campo URL progetto , selezionare Crea directory virtuale, se 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 ( oNome browser ) IIS locale ( sulla barra degli strumenti, selezionareNome browser ) Avvia debug dal menu debugoppure 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.
Risolvere i problemi di debug
Se il debug IIS locale non riesce a raggiungere il punto di interruzione, seguire questi passaggi 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 Collega 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 ASP.NET hanno file web.config
di default, che contengono sia le informazioni per la configurazione dell'applicazione che quelle per l'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 ognuno di essi. Le app di ASP.NET ereditano le impostazioni di configurazione dai file web.config
a livelli superiori nel 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 con un account utente
- Procedura: Trovare il nome del processo di ASP.NET
- Eseguire il debug di applicazioni Web distribuite
- Guida: Debuggare le eccezioni in ASP.NET
- Eseguire il debug di applicazioni Web: errori e risoluzione dei problemi