sql >> Database teknologi >  >> RDS >> Sqlserver

Problem med at teste en Windows-tjeneste

Du kan altid oprette en service-/konsolapp-hybrid og bruge konsolappen til testformål.

Det du skal gøre er noget som dette - i dit program.cs , skal du ændre Main metode til enten at køre tjenesten eller eventuelt køre som en konsolapp:

static class Program
{
    static void Main(params string[] args)
    {
        string firstArgument = string.Empty;

        if (args.Length > 0)
        {
            firstArgument = args[0].ToLowerInvariant();
        }

        if (string.Compare(firstArgument, "-console", true) == 0)
        {
            new YourServiceClass().RunConsole(args);
        }
        else
        {
            ServiceBase[] ServicesToRun = new ServiceBase[] { new YourServiceClass() };
            ServiceBase.Run(ServicesToRun);
        }
    }

og derefter på din serviceklasse, som arver fra ServiceBase og har OnStart og OnStop , tilføj RunConsole metode som sådan:

    public void RunConsole(string[] args)
    {
        OnStart(args);

        Console.WriteLine("Service running ... press <ENTER> to stop");

        //Console.ReadLine();
        while (true)
        { }

        OnStop();
    }

Hvis du nu vil køre appen for at teste dens funktionalitet, skal du bare starte EXE med en -console kommandolinjeparameter, og indsæt et brudpunkt i RunConsole metode.



  1. Opretter forbindelse til MySQL via SSL ved hjælp af PHP

  2. MySQL57-tjenesten på lokal computer startede og stoppede derefter

  3. Hvad er fordelene ved at oprette Stored Procedures i SQL og MySQL?

  4. SQL Server CE 4.0-ydelsessammenligning