14

In qualche modo il VS2008 SP1 ha perso la capacità di accedere alle origini di .NET. Ho giocato con le caselle di controllo a non finire; Ho cancellato di nuovo la cartella della cache dei simboli una dozzina di volte; e ho provato tutti i tipi di server di simboli di debug.Impossibile accedere a .NET framework source con VS2008 SP1

Tutto ciò che fa è scaricare alcuni file .PDB, ma quando provo a selezionare uno stack frame in .NET, ottengo sempre il messaggio di nessuna fonte disponibile e "vuoi vedere il disassemblaggio".

Cosa dà?

Aggiunto: Applicazione Web; Windows Vista Business x32; .NET 3.5 SP1.

+0

troppo, ma non ho mai usato prima di SP1 –

+0

Sembra che questa funzione non è ancora molto maturo, ho anche sperimentato problemi, ma poi l'altro giorno stava funzionando bene di nuovo ... –

+0

Applicazione Web, modulo Windows o servizio? – devlord

risposta

3

Credo che il tuo problema sia una versione non corrispondente di .Net in esecuzione sul tuo sistema rispetto alla versione dell'immagine nel pdb che viene scaricata dal server dei simboli. Ho avuto lo stesso problema su Vista a 64 bit e Win7. Devo ancora trovare un riferimento per come ottenere l'assembly 2.0.5.xxxx come indicato nelle istruzioni. SP1 con tutti i service pack sui due sistemi operativi indacated sono gli assembly a 2.0.0.xxxx

EDIT: Avvia il debug di tutte le app in uso e premi CTRL + ALT + U per ottenere l'elenco dei moduli. Mostra quale assembly nel GAC viene utilizzato per l'applicazione

Ho bloggato quello che penso sia una descrizione migliore del problema. Blog of problem

+0

Come posso dire? Il migliore che trovo sono i percorsi dei file .Ad esempio, il .DLL è: C: \ Windows \ assembly \ GAC_32 \ System.Web \ 2.0.0.0__b03f5f7f11d50a3a \ System.Web.dll mentre il percorso simbolo è: C: \ Symbols \ MicrosoftPublicSymbols \ System.Web.pdb \ 64AF6E6A5B424405A87E37593541CC7F1 \ System.Web.pdb –

+0

Oh e la colonna "Versione" mostra "2.0.50727.3074 (QFE.050727-3000)". Significa che sto ottenendo il simbolo sbagliato File? –

+0

sì, sei la versione 2.0.50727.xxxx. Ho la stessa versione, tranne la parte xxxx e anch'io non posso usare i simboli. Li scarica e agisce come si allega, ma non lo fa. La stessa configurazione funziona bene su Vista 32 box. Sono solo incline ad essere un problema di versione tra symbol e gac – jmcecil

1

Quando si accede alla modalità di debug, aprire la finestra Moduli, fare clic con il pulsante destro del mouse sul componente framework e scegliere di caricare l'origine dai server Microsoft.

+0

Non è lo stesso che fare clic con il tasto destro del mouse su uno stack frame e dirgli di caricare l'origine dai server Microsoft? Se è così, allora non funziona. Ma proverò questo suggerimento domani quando torno al lavoro. –

+0

Hmm ... ha funzionato per un'applicazione standalone, ma non per l'applicazione Web ... –

+0

Il server Microsoft non restituisce solo PDB senza origine? – jmcecil

0

ho incontrato un paio di volte nel 2005. Molto di questo è voodoo e probabilmente irrilevante, ma da qualche parte qui è la risposta (che funziona per me):

  1. Uccidi il servizio
  2. Elimina qualsiasi file .pdbs locale
  3. Elimina i file temporanei in (ad esempio) C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ File temporanei ASP.NET (solo i file relativi al progetto o tutti di essi)
  4. Servizio di riavvio
  5. Se ciò non ha funzionato, ripetere 1-4, riavviare e quindi provare
+0

Nop, non funziona. :(È stato un buon tentativo però: P –

0

Ho notato che se questo problema si verifica quando si esegue un sito Web, abilitando keep-alive HTTP in IIS è possibile risolverlo .

+0

(Non ho mai riscontrato il problema con moduli o servizi a meno che non si tratti di un problema con l'app eseguita non nella stessa posizione dell'origine di debug.) – devlord

+0

In IIS7 su Vista, come Raccolgo da Google, questo è abilitato di default. (Per non parlare di difficile modificare) –

0

Prova this istruzioni, ho avuto tutto funziona bene!

+0

che l'istruzione non funziona su installazioni x64 che sono patchate su SP1 – jmcecil

+1

Questa istruzione è per non-SP1. E sì, prima di SP1 ha funzionato. Adesso no. –

0

Ho riscontrato lo stesso problema su macchine diverse. Ho capito subito su Win7 x86 con .NET v2.0.50727 CLR (3.5sp1). Il numero più aggiornato post non è di aiuto. Si noti che "Microsoft Symbol Server" NON è server di origine con origini .NET. Ospita PDB senza informazioni di origine (non indicizzati). Per le risorse .NET abbiamo bisogno di PDB indicizzati da "http://referencesource.microsoft.com/symbols" e abilitare il supporto del server di origine. Ma a volte smette di funzionare. Immagino che il problema con l'impossibilità di scaricare i PDB indicizzati di .net (come accennato in precedenza) sia correlato ai conflitti di versione.

posso solo dire questo:

WinServer 2008 R2 3.5.30729.4926 - funziona

Win7 x86 3.5.30729.4918 - lavoro doens't

Cosa voglio dire con "non funziona" : prova a "caricare dal percorso dei simboli" (dalle finestre Module o Stack, non importa) e ottieni la finestra di dialogo per scegliere .pdb (posizionato ad esempio in C: \ Windows \ assembly \ GAC_32 \ mscorlib \ 2.0.0.0__b77a5c561934e089 \ mscorlib. pdb). Questo è VS non può scaricare pdb per dll. Assolutamente le stesse azioni su WinSrv2008r2 fanno VS scaricare pdb e (se il supporto del server di origine è abilitato) fonti.

1

Avevo problemi a non poter accedere al codice sorgente Framework.

Poi sono andato alle impostazioni del progetto e ho impostato Target Platform su "Qualsiasi CPU", e quindi la magia è avvenuta, per impostazione predefinita l'impostazione Target Platform era "x86".

La mia piattaforma Win7 x64, VS2010

me
+0

Interessante. Sebbene nel momento in cui l'ho pubblicato avevo solo un sistema operativo a 32 bit, inoltre l'impostazione è sempre stata "Qualsiasi CPU". Ma questo è degno di nota. –

Problemi correlati