Domanda Visual Studio 2013 non raggiunge i punti di interruzione


Sto lavorando con una soluzione ASP.NET in Visual Studio 2013 che non riesce a raggiungere i breakpoint. Visual Studio colpirà correttamente i breakpoint su altre soluzioni e i punti di interruzione in questa soluzione in precedenza lavorato. Ma in questo momento non riescono a lavorare.

Sto usando Visual Studio 2013 Ultimate, Update 4. Questo è installato su Windows 8.1, 64-bit.

Questa è una soluzione MVC che contiene 3 progetti: BusinessEntities, DataAccessLayer (DAL) e un progetto Web. I punti di interruzione in tutti questi progetti non funzionano. Ho persino provato un punto di interruzione all'interno dell'Index ActionResult per il controller di casa e non si è ancora fermato al punto di interruzione.

Nel nastro di Visual Studio, la configurazione della soluzione è impostata su Debug. Inoltre, Configuration Manager mostra che tutti e 3 i miei progetti hanno una configurazione impostata su Debug. Il riavvio di IIS, il riavvio di Visual Studio e il riavvio non hanno risolto il problema. Selezionando Build> Clean Solution, Build> Rebuild, quindi Debug> Start Debugging non è stato risolto.

In web.config, debug è impostato su true in questo nodo:

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

Ci sono file .pdb nelle directory bin dei miei progetti. Ho verificato che vengono eliminati quando la soluzione viene pulita e ricreata quando viene ricostruita.

Cos'altro devo controllare? Ho davvero bisogno di far funzionare i breakpoint in questa soluzione. Grazie.

========

Aggiornamenti il ​​30/12/2014 - Di seguito sono riportate alcune cose che ho provato, in seguito ai commenti di @ paul.abbott.wa.us. Diversi commenti che ho fatto sono stati cancellati e aggiunti qui per chiarezza.

========

Sto avviando l'app tramite VS e eseguendola sotto IIS. La versione di IIS è 8.5. Quando esponi il nome del processo (tramite System.Diagnostics.Process.GetCurrentProcess (). ProcessName), è w3wp.

In IIS, l'applicazione Web ha un nome di sito come "local.mysite" e c'è una voce corrispondente nel mio file hosts. Il sito utilizza DefaultAppPool, che utilizza .NET CLR versione 4.0 e Integrated Managed Pipeline Mode. Le 3 applicazioni nella mia soluzione hanno come obiettivo .NET Framework 4.

Se lo restituisco a IIS Express, il debugger inizia a funzionare. La versione di IIS cambia in 8.0 e il nome del processo è ovviamente iisexpress. Tecnicamente non devo eseguire questo sotto IIS sulla mia workstation, ma preferirei farlo. Che cosa ho configurato erroneamente o ignorato in IIS che potrebbe spiegare il fallimento del debugger?

Rivedendo le impostazioni del server di progetto nella scheda Web della pagina delle proprietà, ho notato che il menu a discesa era impostato su "IIS Express". Dopo aver attivato "IIS locale", mi è stato richiesto di eseguire VS come amministratore. Dopo averlo fatto, sono stato in grado di modificare il server in IIS locale e ho colpito il debugger. Ho controllato la modifica, chiuso VS, lanciato VS non in esecuzione come amministratore e caricato la soluzione. Il progetto web non è riuscito a caricare con il seguente messaggio: Il progetto di applicazione Web [nome_sito] è configurato per utilizzare IIS. Impossibile accedere alla metabase di IIS. Non hai privilegi sufficienti per accedere ai siti Web IIS sul tuo computer.

Alla fine alcune sezioni di questo sito utilizzeranno l'autenticazione di Active Directory. Quindi, è la soluzione di cui ho bisogno per eseguire il sito in IIS Express o eseguire sempre VS come amministratore se desidero eseguire il sito in IIS? Grazie.

Ho trovato una soluzione per superare il messaggio di errore di "Il progetto di applicazione Web [MyApp] è configurato per utilizzare IIS. Impossibile accedere alla metabase di IIS. Non hai privilegi sufficienti per accedere ai siti Web IIS sul tuo computer. "Segui i passaggi di questo post. Errore: impossibile accedere alla metabase di IIS

Dopo aver concesso al mio account l'accesso alla cartella intetsrv \ config, il progetto web è stato caricato correttamente in Visual Studio senza eseguire VS come amministratore.

Ma ora quando lancio il sito appare un altro avviso: "Impossibile avviare il debug sul server web. IIS non elenca un sito Web che corrisponde all'URL lanciato. Fare clic su Guida per ulteriori informazioni. "Inizialmente ho fatto clic su" Crea directory virtuale "e avviato di nuovo, ma lo stesso avviso è riapparso.

Quindi ho selezionato il pulsante Guida dall'avviso. Ciò porta a questa pagina MSDN, che propone circa 2 dozzine di cose da controllare, con circa la metà dei link ad altri articoli. Mi sento un po 'come Alice nel Paese delle Meraviglie in questo momento, andando più in basso nella tana del coniglio.

2/3/2015 Aggiornamento: La mia soluzione alternativa durante l'esecuzione dell'istanza IIS locale era eseguire Visual Studio come amministratore. In definitiva, abbiamo modificato l'app per utilizzare IIS Express, quindi abbiamo abbandonato l'app per un'altra soluzione creata da un collaboratore. Quella decisione non ha avuto niente a che fare con questo problema. Grazie a tutti per i vostri feedback e idee.

Aggiornamento 3/7/2016: Al momento non sono in grado di replicare questo problema, poiché non abbiamo più la soluzione nello stato in cui si trovava quando l'ho lavorato l'anno scorso. Sarei grato se un moderatore potesse chiudere questa domanda. Le opzioni per la chiusura di questo non sono in linea con il mio scenario attuale, ma forse qualcun altro troverà i suggerimenti di seguito utili se incontrano questo scenario. Grazie a tutti coloro che hanno contribuito con un suggerimento.


14
2017-12-29 23:13


origine


risposte:


Assicurati che:

  1. Strumenti -> Opzioni Debugger "Abilita solo il mio codice"è deselezionato
  2. Stai eseguendo l'applicazione in Modalità di debug, non modalità di rilascio
  3. Soluzione la build è aggiornata.

2
2018-03-04 20:37



Ho già incontrato questo problema e l'ho risolto dopo aver ricostruito il pacchetto della soluzione. (Fare clic con il tasto destro del mouse sulla soluzione ed eseguire la ricostruzione)


1
2017-08-06 20:51



Ecco una lista di idee che tengo per un'occasione del genere.

Controlla da dove viene fatto il riferimento alla tua DLL e assicurati che sia il codice che stai cercando di eseguire il debug.

Controlla di essere nella modalità corretta durante la costruzione: Debug / Release in quanto potrebbero mettere le DLL in posti diversi.

Sei collegato al processo corretto?

Per un sito Web su IIS, il codice su cui stai lavorando è lo stesso del codice in esecuzione in IIS?

Vai a Debug> Windows> Moduli e se la DLL pertinente è lì, fai clic con il pulsante destro del mouse e carica i simboli. Se non è nella lista, prova ad eseguire comunque il codice. A volte anche se dice che il punto di interruzione non verrà colpito, è solo perché la DLL non viene caricata finché non si entra in uno scenario che ne ha bisogno. Prova lo scenario che dipende dalla dll e potrebbe comunque colpire il punto di interruzione.

Riavvia il tuo browser. Si potrebbe avere qualcosa memorizzato nella cache da una vecchia DLL.


1
2017-08-20 05:05



Dalla mia precedente esperienza, considera questi:

  • Verifica di aver inserito il punto di interruzione nel posto giusto e di eseguire la pagina o il controller appropriati
  • Fare clic con il pulsante destro del mouse sul punto di interruzione => Posizione => selezionare "Consenti codice sorgente per essere diverso dalla versione originale". Se hai installato il resharper, probabilmente è d'aiuto.

  • Se stai chiamando tramite la chiamata Ajax, assicurati di non avere errori java-script nella pagina (per questo IE cattura gli errori js di default)

  • Alcune volte è perché non si costruisce a fondo, quindi si pulisce il soluzione (fare clic con il tasto destro sulla soluzione e scegliere "clean solution" oggetto) quindi "Rebuild Solution".

  • Alcune volte è perché potresti aver disabilitato l'opzione di compilazione per alcune librerie di classi, quindi in questa situazione è necessario ricostruirle librerie di classi esclusivamente. (lo puoi scoprire controllando la scelta "Configuration Manager"oggetto dal"Build"menu)

Spero che questo aiuto


1
2018-02-03 19:11