Topshelf - Сервис не был запущен своевременно

Я пытаюсь создать службу Windows, используя topshelf. Мне удалось успешно создать то, что я хочу, и отладить его. Мне также удалось установить службу, используя

myservice.exe install

Но при попытке запустить службу с помощью диспетчера служб я получаю следующую ошибку

введите описание изображения здесь

Я сослался на следующие посты и попытался запустить таймер из нового потока, добавив фиктивный метод. Но это также вызывает ту же проблему.

Служба окна Topshelf выдает ошибку 1053 при попытке запустить службу

https://github.com/Topshelf/Topshelf/issues/183

Мой код:

class Program
        {
            static void Main(string[] args)
            {
                var rc = HostFactory.Run(x =>                                   //1
                {
                   // x.StartManually();
                    x.Service<testclass>(s =>                                   //2
                    {
                        x.StartManually();
                        s.ConstructUsing(name => new testclass());                //3
                        s.WhenStarted(tc => tc.Start());                         //4
                        s.WhenStopped(tc => tc.Stop());                          //5
                    });
                    x.RunAsLocalSystem();                                       //6

                    x.SetDescription("Sample Topshelf Host");                   //7
                    x.SetDisplayName("Stuff");                                  //8
                    x.SetServiceName("Stuff");                                  //9
                });                                                             //10

                var exitCode = (int)Convert.ChangeType(rc, rc.GetTypeCode());  //11
                Environment.ExitCode = exitCode;
            }
        }
    }

public class testclass
    {
     public testclass()
            {
                _timer = new System.Timers.Timer(1000) { AutoReset = true };
                _timer.Elapsed += _timer_Elapsed;
                startwatching();


            }
    void startwatching()
          {
              watcher.Created += new FileSystemEventHandler(copied);
              watcher.EnableRaisingEvents = true;
          }
    public bool Start()
    {


        var myThread = new Thread(new ThreadStart(foreverWhile));
        myThread.Start();
        return true;


    }

    public void Stop() { _timer.Stop(); }
    public void foreverWhile()
    {
        _timer.Start();

    }
    }

Я запускаю средство наблюдения за файловой системой из метода "startwatching". Что я делаю не так? Пожалуйста посоветуй

0 ответов

Другие вопросы по тегам