2013-08-02 18 views
7

Come eseguire il debug remoto di un'applicazione gestita da un'altra macchina con Visual Studio. Questo è quello che ho provato:Applicazioni gestite per il debug remoto

  1. Copiare la cartella di debug remoto che proviene parte del Visual Studio nella macchina remota ed eseguire msvsmon.exe (64 bit versione da entrambe le macchine sono a 64 bit).
  2. Utilizzare lo stesso account di accesso di Windows in entrambe le macchine.
  3. Quindi avvio Visual Studio e utilizzo Attach per processare. Nel trasporto seleziono "Default" e nel qualificatore fornisco il nome host della macchina su cui è in esecuzione msvsmon.exe.
  4. Quindi premo il pulsante Aggiorna per visualizzare l'elenco dei processi su quella macchina. Vedo che dall'altra parte dice "Utente xyz è connesso". Tuttavia, l'aggiornamento non riesce e viene visualizzato l'errore seguente: Error screen

Cosa sto facendo di sbagliato qui? Sto provando con VS2008 Pro e OS su entrambi i sistemi è Windows Server 2008 R2 se è importante.

Nota: è possibile eseguire il debug delle applicazioni non gestite utilizzando il trasporto remoto senza problemi.

+2

Usare i tasti [articolo di MSDN] (http://msdn.microsoft.com/en-us/library/bt727f1t% 28V = VS.100% 29.aspx).Il firewall è il solito hangup, lei non ha citato nulla. –

+0

Assicurarsi di eseguire anche msvsmon.exe sul computer remoto * Come amministratore * –

risposta

2

partire da Visual Studio 2012 è possibile utilizzare il remoto (senza autenticazione) trasporto per eseguire il debug di codice gestito (in precedenza VS solo permesso di eseguire il debug di codice nativo in modalità remota ).

3

Ho perso anche molte ore su questo. L'unico modo che ho trovato per farlo funzionare al 100%, è quello di utilizzare lo stesso dominio. Con VS2012 è più facile connettersi senza essere nello stesso dominio.

Ma per il 2008, questo sta lavorando per me (lato A = VS, B = macchina senza VS)

1) la macchina A (dove VS è) e B deve essere nello stesso dominio. È inoltre necessario scaricare e installare il monitor VS Remote Debugger su B

2) È necessario avviare VS Remote debugger monitor sul lato B per consentire la connessione in ingresso. Quando lo avvii la prima volta, configurerà il firewall per aprire le porte. Mostra inoltre su quale indirizzo è in ascolto, ad esempio DOMINIO \ Utente @ hostname_B

3) Esegui VS con un account di amministratore di dominio su A e sarai in grado di eseguire il debug in remoto. Per connettersi a B in debug, utilizzare l'indirizzo mostrato nel passaggio 2 dal monitor

Spero che ti possa aiutare!

+0

Entrambe le macchine sono in diversi domini :(anche nella fase 3 Quando si dice utilizzare l'indirizzo al punto 2 si intende devo entrare in quella in Attach to Process finestra di dialogo? – Asha

+0

Sì, a Connetti a processo si deve inserire l'indirizzo esatto indicato dal monitor debugguer remoto. e 'un vero e proprio dolore per eseguire il debug remoto, se ci si trova in un dominio diverso, ho provato e non riuscirà mai, così ho creato un macchina dev virtuale e si uniscono al dominio in modo da poter eseguire il debug di utilizzare questo vm – Fabske

+0

hai letto questo:. http://msdn.microsoft.com/en-us/library/9y5b4b4f(v=vs.90).aspx? – Fabske

5

Anche se le macchine sono a 64 bit, assicurarsi che le applicazioni in esecuzione siano a 64 bit. Ad esempio, se esegui il debug di un'applicazione a 32 bit sul computer remoto, dovresti eseguire la versione a 32 bit di msvsmon.exe

Questa potrebbe non essere la risposta, ma qualcosa da verificare per essere sicuro.

aggiornamento nel 2017

Come ho usato il debug remoto di più nel corso degli ultimi anni, ho notato un paio di problemi che di solito devono lavorare attraverso.

  1. Assicurarsi che la stessa versione di msvsmon sia utilizzata su ciascuna macchina.
  2. Verificare che l'autenticazione sia configurata correttamente (provare e non ottenere l'autenticazione prima di funzionare, quindi accenderla in un secondo momento se necessario)
  3. Assicurarsi che quando si allega il processo, si disponga delle impostazioni corrette "Allega a" (cioè gestito versione .NET, il codice nativo, etc.)
  4. assicurarsi che il msvsmon sta funzionando come Admin o come la stessa identità dell'utente come l'applicazione che si desidera eseguire il debug
+0

io ancora non riuscivo a provare questo out..will cercare e aggiornare se funziona non appena ho un po 'di tempo. – Asha

+0

Ok. Giusto per essere sicuro, stai eseguendo un programma che è compatibile con x86? Fatemi sapere che succede. – matrixugly

2

Non è una risposta diretta al PO, ma potrebbe essere utile lo stesso e mi ha scavato fuori da situazioni simili un numero di volte.

Suggerirei di prendere in considerazione l'installazione di WinDBG (o simile), assicurando di avere i simboli corretti \ installazione del codice che usa per eseguire il debug. C'è una curva di apprendimento piuttosto ripida per WinDBG, ma credo che ne valga la pena, anche a un livello molto alto. È estremamente leggero, il che significa che è utile nel contesto del post originale + utilizzabile anche in produzione, ecc. Dove l'installazione di qualcosa tipo VS in genere non è un'opzione.

Questa probabilmente non è un'opzione se sei di fretta, ma vale la pena fare a lungo termine.

Chris

PS: Ci sono alcuni v buoni corsi sul web, in particolare su siti come Pluralsight (non ho alcun rapporto, se non l'essere un cliente felice)

1

Ho speso un sacco. di tempo facendo questo lavoro. Ma ci sono riuscito e ora eseguire il debug completo della mia applicazione gestita. Seguo questo elenco di attività per farlo funzionare:

-Aggiungere il PC di destinazione al dominio e accedere con lo stesso account che si utilizza su PC con Visual Studio.

-Run corretto Visual Studio Remote Debugger (msvsmon.exe), utilizzo la versione 2010.

-Girare il firewall sul PC di destinazione.

-Aggiunta eccezione al firewall di Windows per devenv.exe (Visual Studio exe) su computer di sviluppo.

-Se si utilizza OracleVM per PC virtuale, la scheda di rete non può essere in modalità NAT (ho usato il Bridged Adapter).

- L'indirizzo debug da utilizzare è: DOMAIN \ USER @ PCNAME (ad es. MyGreatDomain \ Myself @ DEBUGPC).

-Se io uso "Debug-> Attach to Process" finestra per avviare il debug, ho bisogno di usare anche "Select" per modificare "Allega a:" - ho richiesto gestito (v4.0) codice, il codice nativo .

-I file pdb devono essere nella stessa directory che uso per eseguire il mio exe. Ho mappato la directory con il mio exe e pdb direttamente nel computer di destinazione.

-In Visual Studio devo anche andare su Strumenti-> Opzioni, espandi Debug-> Generale. E deselezionare Abilita solo il mio codice (solo gestito).

E 'davvero complicato per farlo funzionare, ma consente di risparmiare molto tempo dopo ...