Лучше всего сделать сервер Windows службой Windows. Таким образом, даже если никто не вошел в систему на компьютере, ваша программа будет запускаться и запускаться.
Как правило, службы являются лучшим выбором для серверных приложений, требующих запуска при запуске ОС.
О том, как создать сервис в C #, можно прочитать в следующей статье