Может ли кто-нибудь сказать мне, есть ли альтернатива службам Windows? Причина моего вопроса заключается в том, что я нахожу Windows-сервисы жесткими для тестирования, поскольку он требует, чтобы он был установлен первым.
Спасибо.
Может ли кто-нибудь сказать мне, есть ли альтернатива службам Windows? Причина моего вопроса заключается в том, что я нахожу Windows-сервисы жесткими для тестирования, поскольку он требует, чтобы он был установлен первым.
Спасибо.
Просмотрите проект Topshelf. Простота консольного приложения, но может быть установлена как служба Windows.
Это просто требует правильной организации и факторизации кода, поэтому его не нужно вызывать из метода службы. I.E., у вас есть вызов функции, который запускает все, что может быть вызвано из службы, или вашим основным методом, или с помощью NUnit и т.д.
В противном случае, если вы все еще хотите альтернативу, вы можете написать все в основном методе, а затем запустить свою программу как часть запланированной задачи Windows.
Ваша лучшая альтернатива службам Windows - Windows Server AppFabric. Здесь хорошо запись в блоге об использовании.
Тем не менее, я не думаю, что это было бы легче проверить. Лучшая ставка для тестирования - это просто запустить службу Windows с консоли. Это можно сделать, просто создав экземпляр объекта службы и выставив метод для его запуска.
Вместо этого вы можете использовать вместо них рабочие роли Windows Azure. Вы получаете запущенную службу, такую как среда, которая также размещается в облаке.
Дайте вашему консольному приложению некоторую базовую поддержку для переключателей командной строки. Сделайте поведение по умолчанию (без переключателей) для запуска в качестве службы, потому что контроллер службы Windows будет запускать его таким образом. Добавьте переключатель -d для запуска в режиме отладки, который будет просто вызывать точку входа к вашему действительному коду службы, а не пытаться запускаться как служба. В VS откройте свойства вашего проекта, перейдите на вкладку "Отладка" и установите переключатель командной строки отладки в параметрах при запуске отладчика.