[C#] Start programma als service

Pagina: 1
Acties:
  • 148 views sinds 30-01-2008
  • Reageer

  • monnick
  • Registratie: December 2005
  • Niet online
Ik ben bezig met het boek C# Grand Cru te lezen. Ik ken nu de basis van C# wel. Ik ben echter nu aangeland in een paragraaf waar word geleerd hoe je een programma als een systeem service start. Alleen daarvoor heb ik de namespace System.ServiceProcess nodig. Ik kan deze namespace echter niet gebruiken, want dan krijg ik een error. Ik krijg de error dat de namespace niet bestaat.

Ik dacht dat het boek misschien verouderd was ofzo. Dus ik zoeken op google / MSDN maar daar word ook allemaal gebruik gemaakt van System.ServiceProcess. Ik heb ook al gezocht hoe ik mogelijk wel gebruik zo kunnen maken van ServiceProcess maar daar kan ik ook niks over vinden.

Iemand enig idee hoe ik System.ServiceProcess kan gebruiken? Of anders als dat niet een correcte oplossing is hoe ik anders service's kan runnen?

mijn IDE is trouwens: Microsoft Visual Studio 2005 Version 8.0.50727.42

Alvast bedankt!

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:26
Een referentie leggen naar die assembly dus. (System.ServiceProcess.dll)

Maar, als je een Service wilt maken, waarom start je dan geen project van het type WindowsService ? Dan is al het 'plumbing work' al gedaan.

https://fgheysels.github.io/


  • Mike78
  • Registratie: September 2000
  • Laatst online: 11-02 18:42

Mike78

Always

Heb je wel al de reference System.ServiceProcess toegevoegd?

24 uur per dag, 24 biertjes in een krat. Toeval?


  • monnick
  • Registratie: December 2005
  • Niet online
whoami schreef op dinsdag 03 oktober 2006 @ 13:58:Maar, als je een Service wilt maken, waarom start je dan geen project van het type WindowsService ? Dan is al het 'plumbing work' al gedaan.
Ja, dat is ook wat ik ergens via Google las. Alleen hoe doe ik dat, als ik een new project wil aanmaken in VS, dan zie ik nergens een Windows Service staan? :X

EDIT: HUH?! Ik zit wat aan te klote in VS, ik voegde in gewone Windows applicatie het control: Service Controller toe, en dan kan ik ineens wel Using System.ServiceProcess gebruiken? Naja ik ga wel even verder aan de gang. :)

[ Voor 22% gewijzigd door monnick op 03-10-2006 14:06 ]


  • Greyfox
  • Registratie: Januari 2001
  • Laatst online: 12-02 23:17

Greyfox

MSX rulez

monnick schreef op dinsdag 03 oktober 2006 @ 14:02:
[...]


Ja, dat is ook wat ik ergens via Google las. Alleen hoe doe ik dat, als ik een new project wil aanmaken in VS, dan zie ik nergens een Windows Service staan? :X
New project -> Visual C# -> Windows -> Windows Service

MSX 2 rulez more


  • cowgirl
  • Registratie: November 2000
  • Laatst online: 18-12-2025
monnick schreef op dinsdag 03 oktober 2006 @ 14:02:
EDIT: HUH?! Ik zit wat aan te klote in VS, ik voegde in gewone Windows applicatie het control: Service Controller toe, en dan kan ik ineens wel Using System.ServiceProcess gebruiken? Naja ik ga wel even verder aan de gang. :)
Waarschijnlijk is door het toevoegen van de control automatisch ook de reference gelegd naar de hierboven al genoemde System.ServiceProcess.dll. Kijk maar eens in het lijstje van je references.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 03-02 12:37

pjvandesande

GC.Collect(head);

monnick schreef op dinsdag 03 oktober 2006 @ 14:02:
[...]

EDIT: HUH?! Ik zit wat aan te klote in VS, ik voegde in gewone Windows applicatie het control: Service Controller toe, en dan kan ik ineens wel Using System.ServiceProcess gebruiken? Naja ik ga wel even verder aan de gang. :)
Visual Studio voegt gewoon zelf de benodigde referenties toe zodra je een control of component uit de toolbox pakt.

  • monnick
  • Registratie: December 2005
  • Niet online
Ik ben van een Windows Applicatie even overgestapt naar een Console Applicatie. Ik heb een referentie gelegt naar System.ServiceProcess, dat lukt nu goed. Daarna heb ik mbv MSDN een programma gemaakt dat een service start alleen het werkt helaas niet. Ik krijg de volgende fout:

Cannot open MijnTest service on computer '.'.

Ik gebruik de volgende code:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceProcess;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ServiceController sc = new ServiceController();
            sc.ServiceName = "MijnTest";

            Console.WriteLine("Status van MijnTest: {0}", sc.Status.ToString());

            if (sc.Status == ServiceControllerStatus.Stopped)
            {
                Console.WriteLine("Begin met starten service.....");

                try
                {
                    sc.Start();
                    sc.WaitForStatus(ServiceControllerStatus.Running);

                    Console.WriteLine("Service status is nu: {0}", sc.Status.ToString());
                }
                catch (InvalidOperationException)
                {
                    Console.WriteLine("Kon de service niet starten!");
                }
            }

            Console.ReadKey();
        }
    }
}


Ik heb al even beetje rond gegoogled naar zo'n soort fout alleen niks kunnen vinden. Is het misschien iets met dat het progamma geen rechten heeft om een service te starten?

Ik hoop dat iemand mij kan helpen. :>

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:26
Ik denk dat je je eerst eens met wat meer basic dingen moet bezighouden, ipv al met services te gaan spelen.
De console app die je nu hebt, gaat een service gaan aansturen. Ben je zeker dat die service op je computer geinstalleerd is ? Dat is toch wat de fout zegt. (Een beetje begrijpend lezen kan nooit kwaad).

https://fgheysels.github.io/

Pagina: 1