Запланированное консольное приложение против службы Windows? Когда уместно использовать каждый
Для любой запланированной windows-application задачи я обычно рекомендую winservice службу Windows по следующим windows-applications причинам:
- Служба Windows будет работать, даже если пользователь не вошел в систему на ПК (будет работать, даже если сервер находится в приглашении для входа в систему) (*** Примечание - это может зависеть от версии Windows, которую вы используете) .
- Служба может работать как учетные записи с высоким уровнем доступа, такие как сетевая служба, локальная система или пользователь - в этом отношении у них больше возможностей настройки.
- Служба также имеет встроенные параметры для запуска, остановки, перезапуска и приостановки во время работы (иногда).
- Вы также можете настроить условия сбоя для служб, например, автоматический перезапуск в случае сбоя.
Что касается других windows-application примеров приложений, которые dot-net могут быть службами Windows, во windows-services многих случаях они полезны windows-application для таких приложений, как .net удаленное взаимодействие windows-applications - вы можете запустить службу dotnet удаленного сервера, к которому dot-net подключаются клиенты. Очевидно, очень windows-programming полезно для задач обработки windows-services данных, которые вы также dotnet хотите запускать в фоновом dotnet режиме, или процессов, для winservice которых вы хотите отправить windows электронное письмо при определенных windows условиях и т. Д.
В общем, я windows-service всегда считал запланированные windows-application задачи гораздо более хрупкими windows-application и ненадежными. И если у вас .net нет их в журнале должным dot-net образом, часто бывает труднее winservice отлаживать.
Что касается ошибки .net с таймером - если вы прочитаете windows-service отчет об ошибке на сайте windows-services MS, вы увидите, что она возникает, когда windows-programming вы вызываете «Stop» внутри dotnet события Timer_Elapsed. Ответ windows-application на этот вопрос прост - не .net-framework останавливайтесь. Вместо windows-service этого оберните все это проверкой windows-service на логическое значение IsRunning windows-services и запускайте только в том .net случае, если IsRunning имеет windows-services значение false. Даже если windows с таймером не было проблем, вам dot-net все равно нужно сделать это, потому dotnet что таймер может повторно .net сработать во время вашего windows-programming выполнения, если ваше выполнение dot-net займет больше времени, чем windows-application ваш интервал таймера.
В любом windows-services случае, я по-прежнему считаю windows-programming использование запланированных winservice задач слабым решением, и windows-programming у меня возникают воспоминания dotnet о Windows 95.
.net
windows
windows-services
Запланированное консольное приложение против службы Windows? Когда уместно использовать каждый
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.