Я написал консольное приложение, которое в настоящее время выполняется на сервере. Он не требует ввода пользователем (кроме параметров при запуске, которые могут быть выполнены с помощью параметра запуска).Консольное приложение «Всегда работает»
К сожалению, это решение плохо, потому что кто-то может его отключить (т. Е. При подключении к серверу с использованием подключения к удаленному рабочему столу, а затем просто отключение отключение). Мне нужно, чтобы он работал все время.
Одним из решений было бы превратить его в службу Windows, но до сих пор использование SC или сторонних инструментов, таких как nssm или RunAsService, не удалось (SC и Nssm создают службу, но такую услугу не удается запустить).
Я мог бы полностью переписать свою программу, чтобы быть надлежащим сервисом ... но, честно говоря, я борюсь с ней (и из того, что я прочитал, это не рекомендуется).
Наконец-то я мог оставить его в качестве консольного приложения и использовать планировщик задач для его запуска, который выглядит как приличное решение, но (как я уже упоминал) мне нужно, чтобы он работал все время (его можно поворачивать off и on - очень короткие простои не являются проблемой).
Могу ли я запросить любую помощь при настройке такой задачи?
решаемые
После нескольких попыток я превратил его в службу, используя Topshelf и this great guide.
Что вы прочитали, что предположили, что использование сервиса - плохая идея? Это идеальное решение для вас. Сервисы могут перезапускаться при сбое, что очень полезно. – arjabbar
Возможно, вам захочется взглянуть на отличную библиотеку с открытым исходным кодом TopShelf для размещения вашей сборки в качестве сервиса. Это довольно просто для создания службы, которая может сама установить и удалить, включая параметры для учетной записи для запуска и т. Д. – Alex
Да, напишите ее как услугу. Вы пытаетесь изобрести колесо здесь, когда нет необходимости. –