Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Проблем с тестване на Windows услуга

Винаги можете да създадете хибрид услуга/конзолно приложение и да използвате конзолното приложение за тестови цели.

Това, което трябва да направите, е нещо подобно - във вашия program.cs , променете Main метод за стартиране на услугата или по избор като конзолно приложение:

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

и след това върху вашия клас услуги, който наследява от ServiceBase и има OnStart и OnStop , добавете RunConsole метод по следния начин:

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

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

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

        OnStop();
    }

Сега, ако искате да стартирате приложението, за да тествате неговата функционалност, просто стартирайте EXE с -console параметър на командния ред и поставете точка на прекъсване в RunConsole метод.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Таблица:Повторете редовете на заглавките на всяка страница, които не работят - Report Builder 3.0

  2. Актуализиране на сортирането на всички полета в базата данни в движение

  3. Предоставяне на разрешения на ниво таблица в SQL Server

  4. Как да контролирате кои потребители могат да дешифрират SQL Server Symmetric Key Encryption

  5. Избройте всички външни ключове в таблица в SQL Server