sql >> Database >  >> RDS >> Sqlserver

Probleem met het testen van een Windows-service

U kunt altijd een hybride service/console-app maken en de console-app gebruiken voor testdoeleinden.

Wat je moet doen is zoiets als dit - in je program.cs , verander de Main methode om de service uit te voeren, of optioneel als een console-app:

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);
        }
    }

en vervolgens op uw serviceklasse, die erft van ServiceBase en heeft de OnStart en OnStop , voeg de RunConsole . toe methode als volgt:

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

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

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

        OnStop();
    }

Als u nu de app wilt gebruiken om de functionaliteit te testen, start u de EXE gewoon met een -console opdrachtregelparameter en plaats een breekpunt in de RunConsole methode.



  1. Succesvolle SQL-injectie ondanks PHP Magic Quotes

  2. Procedure met IN-parameter

  3. sun.security.validator.ValidatorException:PKIX-padopbouw mislukt, met java>1.6

  4. Hoe houd ik toezicht op mijn MySQL-replicatieserver?