Jag funderade på en sak idag, hur gör man egentligen för att debugga tjänster smidigt i vs.net? vs.net i sig kräver ju att man först kompilerar, sedan gör en manuell installation, sedan att man startar tjänsten och till sist att man ansluter debuggern till den... Omständigt eller har jag missat nå't viktigt? >Jag funderade på en sak idag, hur gör man egentligen för att debugga tjänster smidigt i vs.net? vs.net i sig kräver ju att man först kompilerar, sedan gör en manuell installation, sedan att man startar tjänsten och till sist att man ansluter debuggern till den... Omständigt eller har jag missat nå't viktigt? Man kan ju alltid skippa att exekvera kod i OnStart om man vill... ;) Dvs. om t.ex. ett värde i registret existerar så körs den koden som fanns i de eventsen när man kallar på den via remoting istället... Kan man inte bara anropa Debugger.Break() först i Main eller OnStart? >Kan man inte bara anropa Debugger.Break() först i Main eller OnStart? Hm... intressant... Hur som helst, om man kunde ha nå'n dummy app eller nå't som installerade och startade tjänsten eller nå't bara...Skriva och debugga tjänster?
Anledningen till detta var att jag har försökt några gånger men blev bara irriterad på debuggern eftersom att den inte klarade av det dära... Så.... Vad jag funderade på var om man kunde skriva en service (dummy) som alltid går utan att göra någonting i princip... Dock så skulle man via remoting eller nå't kunna "ansluta" en viss klass i en dll till den... För att göra den här anslutningen så skulle man då ha en liten dummy-app eller nå't som man startade vars enda syfte skulle vara att "ansluta" den här dllen... Om servicen tappar kontakten med den här appen så skulle den avsluta och plocka bort den här klassen helt enkelt...
Om det här gick så skulle det ju bli lika enkelt att debugga som med en vanlig windows forms applikation eller liknande, eller? (Självklart så skulle man behöva en annan specialdesignad version av service-delen när man kör release på projektet...)
Vettigt?Sv: Skriva och debugga tjänster?
Du måste göra precis så som du skriver. Du kan bara debugga OnPause, OnContinue and OnStop. OnStart och Main har redan körts innan du anslöt tjänsten vid start av debuggning. För att debugga OnStart och Main så kan du skapa en sk "harness service" som i sin tur startat din tjänst, dock kräver detta lite extra arbete.
/Fredrik Normén NSQUARED2Sv: Skriva och debugga tjänster?
Hur som helst, det dära "harness service", exakt hur fungerar det?Sv: Skriva och debugga tjänster?
MSSv: Skriva och debugga tjänster?
Hmm, har aldrig testat, när break nås så borde "fönstret som frågar vilken debugger man vill ansluta tjänsten till" dyka upp, så det skulle nog kunna fungera.
/Fredrik Normén NSQUARED2Sv: Skriva och debugga tjänster?