| 

.NET C# Java Javascript Exception

2
Hallo Comunity,

ich versuche mich seit Tagen erfolglos am Remote-Debugging mit VS2010.
Die Verbindung zum Ausführenden Rechner (im lokalen Netzwerk) steht und ich kann mich auch "an den Prozess anhängen" Allerdings werden dann alle Breakepoints weiß mit Ausufezeichen und dem Hinweis, dass "keine Symbole vorhanden wären" - was genau bedeutet das, und was mache ich da falsch?!

Viele Grüße
Mike
04.02.2011
MikeJ 31 1 3
1
Bitte mal ordentlich Tags verwenden. »mit« gehört nicht dazu.
DASKAjA 04.02.2011
10 Antworten
3
Hallo, wenn du dich bereits an den Prozess anhängen kannst, sollte alles korrekt eingestellt sein. Das Debuggen funktioniert nicht mehr, wenn du unterschiedliche Versionen auf beiden Rechnern hast. Hast du evtl. im Code etwas geändert, wodurch sich die Version von der Remote-Version unterscheidet ?
04.02.2011
Andy Stumpp 509 1 6
3
Ja du scheinst auf dem Schlauch zu stehen :)

Ich schreib es jetzt einfach mal als Step-For-Step :)

1. Installiere oder kopiere den Remote-Debugger auf dem RemoteHost (Server). Achte bei der Installation darauf, das es nicht als Service installiert wird, da dieser unter dem Benutzerkontext "LOCALSYSTEM" laufen würde.

2. Erstelle auf dem Remotehost (Server) und deinem Localhost (Visual Studio) einen Benutzer der auf beiden Maschinen den gleichen Namen (z.b. REMOTEDEBUGGER) UND das gleiche Passwort haben und füge sie auf beiden Maschinen der Administratorgruppe hinzu.

3. Öffne die Console (CMD) auf beiden Maschinen. Wechsle in das Verzeichnis "C:\(DeinProgrammordner)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x86"
und führe dort den Befehl "runas /user:REMOTEDEBUGGER msvsmon.exe" aus.
Der RemoteDebugger läuft nun im Benutzerkontext des frisch erstellten DEBUGGER-User (REMOTEDEBUGGER)

Starte nun die Anwendung die du Debugger möchtest, sei dir hierbei sicher den aktuellsten Build mit all seinen *.PDBs kopiert zu haben.

Du bist nun auf dem RemoteHost durch

4. Hier bitte auch die Console mit CMD öffnen und in den Pfad: "D:\DeinProgrammVerzeichnis\Microsoft Visual Studio 10.0\Common7\IDE\" wechseln. Gib dort "runas /user:REMOTEDEBUGGER devenv.exe" ein und start damit Visual Studio ebenfalls im Kontext des DEBUGGER-Users.
Gehe nun auf den REMOTEHOST und kopier dir aus dem RemoteDebugger deine Kennung raus.
REMOTEDEBUGGER@SERVER sollte sie heissen.

5. Lade das Projekt in Visual Studio und starte das RemoteDebugging indem du auf EXTRAS / TOOLS -> Attach to process / an einen Process anhängen gehst. Gib dort oben deine Kennung REMOTEDEBUGGER@SERVER ein und klick Aktualisieren.

PS: RemoteDebugging ist echt sehr aufwendig, MS geht leider immer davon aus in einer Domäne zu arbeiten. Seit 2005 wurde daran leider nichts geändert.

Ich hoffe ich konnte dir nun helfen :)
05.02.2011
BenWagner 204 3
Hallo leider habe ich das Problem das ich keine Verbindung zu dem anderen Client bekomme. Ich habe alle so gemacht wie es hier beschrieben wurde jedoch ohne erfolg. Be jedem Versuch bekomme ich folgende Fehlermeldung: Mit "REMOTEDEBUGGER@NBAN" konnte keine Verbindung hergestellt werden. Der angegebene Remoteservername ist nicht gültig. Muss ich noch etwas beachten wenn sich beide Clients in einer Domäne befinden? Gruß Sebastian
Webster84 11.07.2013
1
Probleme die ich bei mir festgestellt hatte:

1. der Remote-Debugger muss in exakt der selben Version wie das Visual-Studio laufen (also Service-Packs beachten)
2. der Remote-Debugger muss mit dem selber User laufen
3. die pdb-Files sollten beim Programm leigen das du debuggen willst
04.02.2011
Floyd 14,6k 3 9
Schon nicht schlecht, ich knüpfe an.

Stelle folgende Sachen sicher:
1. Ist der RemoteHost x86 oder x64 ? Beide Versionen sind untereinander nicht kompatibel. x86 lässt von vorn herein nicht auf einem x64 System installieren, das ist halb so schlimm... kopier dir einfach die Binarys von einem x86er System. Es wird beim starten vermutlich rummurren, aber das kannst du ignorieren.

BenWagner 04.02.2011
2. Sofern der Remotehost nicht in deiner Domäne ist, musst du auf dem Remotehost den gleichen Benutzer mit den gleichen Passwort und Administratorrechten erstellen. Starte danach msvsmon.exe über runas mit deinem Benutzeraccount.

3. Check die Firewalleinstellungen

4. Wie schon erwähnt wurde, müssen deine PDBs aktuell sein. Wenn du eh nur Debuggen möchtest, bau dir einen aktuellen Build und schmeiss ihn mit allen Files auf den Remotehost.

Sorry, aber Zeichenbeschränkung hier.....


BenWagner 04.02.2011
1
Hallo,

mein Rechner mit VS ist mit Win7 Ultimate 64Bit ausgestattet, der Ziel-Rechner mit Win7 Prof. 32 Bit. Im Kofigurations-Manager von VS ist "Aktive Projektmappenplattform" auf x86 eingestellt, einige Projekte in der Liste stehen jedoch auf "Any CPU".

Ich habe den Remote-Debugger von einer Netzwerk-Freigabe aus gestartet (stand so irgendwo in der MSDN). Er befindet sich also auf meinem PC, und das Ziel-System greift auf meine Freigabe zu. Den Authentifizierungsmodus habe ich auf "keine Authentifizierung (nur Systemeigen)" gestellt und "Allen Benutzern das Debugging ermöglichen" angehakt. Muss ich dann trotzdem noch einen User mit dem gleichen Namen auf dem Rechner anlegen?

Debugger und VS haben beide die gleiche Version.

Ich habe nun nochmals auf "Release" gestellt und die Projektmappe neu erstellt. Danach den kompletten Inhalt aus dem Ordner "bin\Release" auf den Ziel-Rechner übertragen und die Exe gestartet. Leider ohne Erfolg: Ich kann mich wieder an den Prozess anhängen und VS signalisiert auch den "Erfolg" indem der "Start-Pfeil" inaktiv und der "Stop-button" aktiv wird. Allerdings habe ich weiterhin das Problem, dass meine Breakpoints nicht funktionieren: "Der Haltepunkt wird momentan nicht erreicht. Für dieses Dokument wurden keine Symbole geladen".

(Firewall-Einstellungen müssten doch dann auch OK sein, oder?!)

Viele Grüße
Mike
04.02.2011
MikeJ 31 1 3
0
An der Firewall kann es definitiv nicht liegen.

Bist du dir auch sicher, dass der Pfad deines Haltepunktes ausgeführt wird? Meines Erachtens sind die restlichen Einstellungen von deinem geschilderten Problem unabhängig.
04.02.2011
Andy Stumpp 509 1 6
0
Kleiner Hinweis: Wenn du die Authentifizierung deaktivierst, kannst du nur unmanaged-Code debuggen. Für managed Code ist die Authentifizierung nötig.

Wie ich bereits gesagt hab musst du auf beiden Maschinen jeweils einen Nutzer mit GLEICHEN Namen und Passwort kreiern. Danach in die Administratorgruppe schieben.

Du musst nun Visual Studio (devenv.exe) unter diesen Benutzerkontext starten UND den Remotedebugger (msvsmon.exe) ebenfalls.

Visual Studio Dev10 ist in "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\" standardmässig installiert. Bitte dort per CMD hinwechseln und einmal

"runas /user:DeinErstellterUser devenv.exe" eingeben.

Da Visual Studio nun in einem anderen Kontext ausgeführt wird, arbeitest du mit Standardeinstellungen, keine Sorge... deine bleiben erhalten :)
04.02.2011
BenWagner 204 3
0
ja, der Pfad wird definitiv ausgeführt (hab den Breakpoint zum Test mal auf nen Button gelegt und drauf geklickt...)

Zum Thema Authentifizierung: Das würde ja heißen, ich muss definitiv mit aktiver Authentifizierung arbeiten?!

Ich bin jetzt etwas verwirrt, was die Sache auf dem Remote-Rechner betrifft - VS muss ich dort doch nicht installieren, oder?!

Um Missverständnisse auszuschließen:
auf meinem PC läuft VS und mein Benutzerkonto heißt Mike. Auf dem anderen Rechner (Name: Server, User: Admin) Habe ich jetzt ebenfalls noch einen User "Mike" mit gleichem Passwort wie auf meinem PC angelegt. Wenn ich mich nun versuche zu Verbinden (Transport = Standard, Qualifizierer = Server) erscheint immer eine Fehlermeldung ,dass die Zeit überschritten ist, Der Debug-Monitor auf dem Server zeigt jedoch an "Server/Mike verbunden".

Für den Fall dass ich´s überhaupt nicht hinbekomme: kommt jemand von Euch aus dem Raum Giessen/Linden oder Aschaffenburg und könnte mir dabei mal helfen?! (Natürlich nicht für umsonst...)

Viele Grüße
Mike
04.02.2011
MikeJ 31 1 3
0
Also, du solltest natürlich den RemoteDebugger-Service auf dem RemoteHost (Server) beenden und den Debugger direkt über runas (wie oben beschrieben) starten.
04.02.2011
BenWagner 204 3
0
sorry, ich steh irgendwie auf dem Schlauch...
wenn ich den Remotedebugger auf dem Server beende und devenv.exe auf meinem Rechner ausführe starte ich doch auf meinem Rechner wieder Visual-Studio mit meinem Benutzerkonto - also so, als würde ich es direkt über Start-Programme öffnen?!
devenv.exe auf dem Server würde VS auf dem Server startet, aber es ist dort ja nicht installiert...
Oder muss ich VS auf dem Server installieren?!
05.02.2011
MikeJ 31 1 3
Ich hatte eben dazu hier eine Antwort geschrieben, aber die ist aus Geisterhand nach oben gerutscht... die Reinfolge ist hier nun total durcheinander.
BenWagner 05.02.2011
0
Hi - wollt nur mal kurz Bescheid geben, dass ich noch nicht zum Testen gekommen bin, melde mich auf jeden Fall nochmals sobald ich es testen konnte.

Vielen Dank schon mal für die bisherige Unterstützung!
Gruß Mike
09.02.2011
MikeJ 31 1 3

Stelle deine 2010-Frage jetzt!