Avatar billede spif2001 Nybegynder
06. januar 2006 - 09:18 Der er 3 kommentarer og
1 løsning

Service vil ikke starte

Hvorfor kan jeg ikke installere og starte en service med følgende kode?

private void Test()
{
    try
    {
        Process p = Process.Start(@"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\regsvcs", @"/fc C:\My.dll");
        p.WaitForExit();
        if(p.ExitCode != 0)
        {                   
            Console.WriteLine("My service install(RegSvcs) failed!!!");
            Console.WriteLine("ExitCode was: "+p.ExitCode);
            return;
        }
        ServiceController sc = new ServiceController("My",Environment.MachineName);
        sc.Start();
        Console.WriteLine("My service started!");
    }
    catch(Exception ex)
    {
        Console.WriteLine("Install failed - Exception!!!");
        Console.WriteLine(ex.ToString());
    }
}

RegSvcs virker fint og den ligger sig som den skal i COM+ tjenesterne (kan se den i Komponenttjenester app'en), men når koden kommer til sc.Start(), smider den følgende Exception:

System.InvalidOperationException.
Service My was not found on computer 'MBU'.

InnerException = System.ComponentModel.Win32Exception
Den angivne tjeneste findes ikke som en installeret tjeneste

Hvad sker der?
Avatar billede spif2001 Nybegynder
06. januar 2006 - 09:54 #1
Har det noget at gøre med, at det er en dll og ikke en exe og man derfor ikke kan starte den med en ServiceController?

Jeg kan starte den manuelt, ved at gå ind i Komponenttjenester og højreklikke på den.

Så servicen virker altså, men kan ikke startes fra kode.
Avatar billede spif2001 Nybegynder
11. januar 2006 - 08:38 #2
Kan åbenbart ikke få svar hverken her, på CodeProject eller GotDotNet. Lukker og undrer mig...
Avatar billede Syska Mester
11. januar 2006 - 20:12 #3
Well, logisk set burde alle services vel være .exe filer..... og så alle mulige hjælpe programmer kan være dll...... men du har du vel også selv fundet ud af, da ingne andre svarede... eller?

Så virker det i hvert fald i min hjerne :-) *heheh*

// ouT
Avatar billede spif2001 Nybegynder
10. februar 2006 - 14:40 #4
Til interesserede kan jeg sige, at jeg har fået det til at køre.
Det jeg ville have var en dll, der som en service gik i gang når den blev kaldt.

Det var igen igen et attribut spørgsmål - *suk*

AssemblyInfo filen skulle have følgende attribut:

[assembly: ApplicationActivation(ActivationOption.Server)]

Den er default sat til ActivationOption.Library når man laver en Windows Service.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester