Подтвердить что ты не робот

С# Windows Services Alternative

Может ли кто-нибудь сказать мне, есть ли альтернатива службам Windows? Причина моего вопроса заключается в том, что я нахожу Windows-сервисы жесткими для тестирования, поскольку он требует, чтобы он был установлен первым.

Спасибо.

4b9b3361

Ответ 1

Просмотрите проект Topshelf. Простота консольного приложения, но может быть установлена ​​как служба Windows.

Ответ 2

Это просто требует правильной организации и факторизации кода, поэтому его не нужно вызывать из метода службы. I.E., у вас есть вызов функции, который запускает все, что может быть вызвано из службы, или вашим основным методом, или с помощью NUnit и т.д.

В противном случае, если вы все еще хотите альтернативу, вы можете написать все в основном методе, а затем запустить свою программу как часть запланированной задачи Windows.

Ответ 3

Ваша лучшая альтернатива службам Windows - Windows Server AppFabric. Здесь хорошо запись в блоге об использовании.

Тем не менее, я не думаю, что это было бы легче проверить. Лучшая ставка для тестирования - это просто запустить службу Windows с консоли. Это можно сделать, просто создав экземпляр объекта службы и выставив метод для его запуска.

Ответ 4

Вместо этого вы можете использовать вместо них рабочие роли Windows Azure. Вы получаете запущенную службу, такую ​​как среда, которая также размещается в облаке.

Ответ 5

Дайте вашему консольному приложению некоторую базовую поддержку для переключателей командной строки. Сделайте поведение по умолчанию (без переключателей) для запуска в качестве службы, потому что контроллер службы Windows будет запускать его таким образом. Добавьте переключатель -d для запуска в режиме отладки, который будет просто вызывать точку входа к вашему действительному коду службы, а не пытаться запускаться как служба. В VS откройте свойства вашего проекта, перейдите на вкладку "Отладка" и установите переключатель командной строки отладки в параметрах при запуске отладчика.