c # - Fjernfejlfinding af en Windows Service VS2010

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har udviklet en windows service på mit system og har implementeret tjenesten på en målmaskine, der ikke har en visuel studie. Derfor skal jeg debugge programmet fra min pc. Jeg ved allerede, hvordan man fejler en windows service på en lokal maskine.


MINE STEG:



  1. Kopierede den komplette bin-mappe (indeholdende .exe samt .pdb-filer) til målmaskinen.

  2. Installeret tjenesten på målmaskinen ved hjælp af InstallUtil.exe (dvs. installUtil.exe "pathToMyServiceEXE/myService.Exe")

  3. Startede tjenesten

  4. Installeret Visual Studio Remote Debugging-applikation (startet i 'Ingen godkendelsestilstand' med fejlfindingsindstilling tjekket)

  5. Vedhæftet til tjenesten i Visual Studio (som kører på min pc)



PROBLEM: Jeg kan med succes vedhæfte Windows-serveren til målmaskinen. Men det kan ikke finde symbolerne.


Jeg har kontrolleret andre SO spørgsmål om det samme problem, men kunne ikke finde den rigtige løsning hidtil. Jeg har forsøgt følgende ting for at løse problemet:



  • Åbn Tools->Options->Debugging->Symbols og sæt derefter stien til .pdb-filer på min lokale pc. (Fungerede ikke)

  • Åbnet Tools->Options->Debugging->General og afkrydset 'Aktiver bare min kode'.

  • Udover ovenstående to har jeg allerede sørget for, at jeg kører x64-versionen af ​​fjernprogrammet, debug/x64-versionen af ​​windows service og debug/x64 på min lokale pc.


Bedste reference


Det bedste råd, jeg kan give dig - hvilket ikke er det nemmeste nu, men vil betale sig i det lange løb - er at bruge WinDBG debugger på målmaskinen. Dette er ved siden af ​​nul opsætning på målmaskinen, men det kræver, at du lærer det grundlæggende i WinDBG. Dette er ikke trivielt, men vil betale sig i det lange løb.


Hvad angår hvorfor du ikke kan indlæse symboler:



  1. Måske FBF'er ikke matcher binære filer?

  2. Måske sti er ikke tilgængelig for den nuværende logget bruger? (f.eks. kortlægningsdrev osv.)

  3. Måske tilladelsesproblem?



Andet så tror jeg, det burde fungere