IIS Express Chiude immediatamente il sito in esecuzione dopo aver arrestato l'applicazione Web


173

Sto usando Visual Studio 2012 nei primi giorni in cui voglio interrompere l'applicazione in IDE, l'applicazione era ancora in esecuzione su IIS Express, potevo navigare e lavorare con l'applicazione in esecuzione, ma ora non posso. IIS Chiusura immediata dell'applicazione se si preme il pulsante di arresto. Da quando ricordo di non aver apportato alcuna modifica alle impostazioni. Come dovrei farlo correndo lo stesso dei primi giorni.


1
Prova "visualizza nel browser" anziché "riproduci". Hai cambiato il browser predefinito? IE si spegne automaticamente all'arresto, Chrome no.
Emanuele Greco,

No, sto usando FF, ma a volte devo eseguire il debug dell'applicazione.
Sciabola

Penso che questo sia qualcosa legato a IIS Express.
Sciabola

1
Invece di fare clic sul pulsante di arresto, puoi anche utilizzare Rimuovi tutto nel menu Debug.
jessehouwing,

1
Ha staccato il debugger dai processi di cui è stato eseguito il debug, ma non uccide i processi in corso.
jessehouwing,

Risposte:


344

Di recente ho riscontrato una situazione simile quando improvvisamente IIS Express si è arrestato subito dopo aver interrotto il debug. Questo è successo dopo aver attivato "Abilita modifica e continua" . Quindi, se lo disabiliti, vedrai che IIS Express rimane in esecuzione anche dopo l'interruzione del debug.

Fai clic con il pulsante destro del mouse sul progetto> fai clic su Proprietà> seleziona la scheda "Web" a sinistra> deseleziona la Enable Edit and Continuecasella di controllo.


3
Posso confermare che ciò ha risolto il problema per me.
Maxime Rouiller,

51
Questo funziona !! Fare clic con il tasto destro del mouse sul progetto> fare clic su Proprietà> selezionare la scheda "Web" a sinistra> deselezionare la casella di controllo "Abilita modifica e continua".
nv.snow,

6
Funziona. In Visual Studio 2013 Apri "Strumenti-> Opzioni", seleziona nella struttura "Debug-> Modifica e continua" e deseleziona la casella "Abilita modifica e continua".
Renzo Ciot,

3
puoi leggere questa funzione in modo più dettagliato qui: blogs.msdn.com/b/webdev/archive/2013/07/11/…
gor

5
No, questa è una cattiva soluzione - vedi la soluzione corretta, pubblicata da @jessehouwing, di seguito.
Josh M.

85

In VS2010 e VS2012, l'opzione modifica e continua è disabilitata per impostazione predefinita quando si crea un nuovo progetto di applicazione Web. In VS2013 è attivato per impostazione predefinita.

È possibile trovare questa opzione nella scheda Web nella finestra delle proprietà del progetto Web.

modifica e continua l'opzione vs2013

Con "Abilita modifica e continua", il debugger VS avvia l'applicazione Web in IIS Express. Quando si interrompe il debug, anche IIS Express viene chiuso. Con questo comportamento, verrà visualizzato il vassoio di sistema di IIS Express visualizzato durante il debug e scomparso dopo il debug. Questo comportamento è lo stesso di VS2012 quando l'opzione Abilita modifica e continua è attivata.

Se non hai bisogno della funzionalità "Modifica e continua" durante lo sviluppo e desideri che IIS Express rimanga dopo una sessione di debug, puoi semplicemente disattivare l'opzione Abilita modifica e continua .

Se si desidera utilizzare "Modifica e continua" o si sta sviluppando un sito Asp.net 5 (i progetti ASP.NET 5 non hanno una casella di controllo Modifica e continua nelle proprietà del progetto) è necessario utilizzare il comando "Detech all" per interrompere il debug.

Il debugger si staccherà dal processo IIS senza chiuderlo.

Chiaramente la funzione "Modifica e continua" non funzionerà fino a quando non si riavvia il debug.

inserisci qui la descrizione dell'immagine


un'immagine vale più di mille parole: D
giammin

64

Invece di (X) STOPpremere il pulsante, è possibile utilizzare la Detach allvoce di menu nel menu Debug. La differenza principale è che il pulsante di arresto interromperà qualsiasi processo attualmente in fase di debug, mentre Detach All disconnetterà il debugger dai processi, ma non li interromperà.

Anche il normale processo di lavoro IIS verrebbe interrotto, ma poiché era in esecuzione come servizio, si riavvierà automaticamente e quindi potresti continuare a usarlo senza dover riavviare il processo attraverso |> Debugo |> Start without debugging.

Schermata di riferimento

Aggiunta del pulsante "Modifica e continua" alla barra degli strumenti di debug.


3
questo è in realtà più vicino alla vera risposta. L'opzione 'MODIFICA E CONTINUA' è una caratteristica .. Collegare e scollegare il tracciante di debug a un processo di ascolto è il concetto sottolineato di discussione qui, e se il clic stop si interrompe quel processo di ascolto o semplicemente si stacca da esso ... a cui ovviamente puoi anche ricollegarti.
Brett Caswell,

@jcmcbeth funziona davvero per IIS Express .. Non potrei vederlo che non funziona ... I processi IIS Express sono proprio questo, i loro processi separati ... il tuo debugger VS sta avviando il processo e si sta collegando ad esso .. ma tale processo non dipende dal debugger collegato per essere eseguito più di quanto l'applicazione o il server web richiedano l'esecuzione di un visitatore / user-agent / client in proc
Brett Caswell,

1
@jcmcbeth, è una cosa strana da dire su un sito di domande e risposte quando parli di supporto e impostazioni delle funzionalità. Questo non è un prenderlo o lasciarlo scenerio; Hai dichiarato che non sembra funzionare con IIS Express. Lo fa.
Brett Caswell,

1
La casella di controllo "Abilita modifica e continua" non è presente nei progetti VS 2015 RC per ASP.NET 5, quindi è la strada da percorrere se si desidera utilizzare IIS Express con questi.
Tomek,

7
Questa è la risposta a come VS 2015 Update 2 ha cambiato il comportamento di IIS con la rimozione di Modifica e continua dalla scheda Web del progetto.
Robharrisaz,

32

Sembra che dalla versione di Visual Studio 2015 Update 2 la soluzione accettata non funzioni più.

La soluzione più semplice che ho trovato finora è avviare il progetto selezionando " Avvia senza debug " dal menu Debug .


1
Sembra che tu stia parlando di VS2015.
Chad Carisch,

Accidenti, ho appena incontrato questo problema e ho pubblicato domande su questo. Esistono soluzioni alternative note per risolvere questo problema, oltre a ricollegare le scorciatoie per avviare senza eseguire il debug e scollegare anziché interrompere?
nikib3ro,

1
Dicono che lo stanno risolvendo nel prossimo aggiornamento, nel frattempo un altro trucco che puoi usare è premere ctrl + F5 per avviare il sito senza debug: connect.microsoft.com/VisualStudio/feedback/details/2562576/…
mattmanser,

4

Questo è probabilmente meglio classificato come un'altra soluzione alternativa, ma funziona per me.

In genere avvio il progetto per la prima volta con il menu di scelta rapida "Visualizza nel browser" (o CTRL-Shift-W).

Da quel momento in poi, tutto ciò che richiede il debug, di solito mi associo al nuovo processo iisexpress esistente. Mentre il mouse attraverso i menu di contesto renderebbe questo un antipasto, è quasi veloce come F5 con i seguenti tasti:

  • Maiusc-F6 per costruire il progetto corrente o Ctrl-Maiusc-B per costruire l'intera soluzione (questo è necessario solo se sono state apportate modifiche ma ho pensato che dovrei menzionarlo poiché F5 lo fa già).
  • Ctrl-Alt-P apre la finestra di dialogo Allega al processo

  • digitando "iis" verrai indirizzato al processo iisexpress

  • premi invio e sei attaccato

Se hai più di un iisexpress in esecuzione, l'ultimo avviato apparirà generalmente in cima all'elenco. Un'altra opzione è quella di selezionare maiuscole e collegarle a tutte.

Ciò ha una serie di vantaggi IMO. Innanzitutto, non termina il processo. In secondo luogo, la finestra del browser non viene chiusa quando si interrompe il debug. Mi fa scoppiare quando vedo uno sviluppatore ripetere 7 passaggi per riprodurre un bug, quando tutto ciò che deve fare è premere F5 in una finestra del browser esistente per ripubblicare una volta connesso il debugger. Infine, devo farlo già quando mi collego a nunit, quindi ho un'esperienza più coerente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.