Есть ли ситуации, когда мы должны использовать сервис Windows?
Я создаю проект клиент-сервер (C#), и сервер должен работать один без какого-либо пользователя, поэтому кто-то посоветовал мне использовать службу Windows для запуска сервера, не так ли? или есть лучшие решения?Когда мы используем сервис Windows?
ответ
В вашей ситуации я хотел бы использовать услуги по следующим причинам:
- Вам не нужно иметь сеанс работает. Это хорошо для безопасности, а также снижает накладные расходы на сервере.
- Вы получаете некоторые из команд Managment, построенных в бесплатно
- Start
- Стоп
- Пауза
- Продолжить
- Вы можете обрабатывать события сервера, такие как выключение.
Вы должны создать службу Windows для запуска кода в фоновом режиме без взаимодействия с пользователем.
Например, служба Windows будет работать, даже если никто не войдет в систему.
Любой сервер, который принимает соединения (например, почтовый, веб-или FTP-сервер), обычно должен быть службой Windows.
Службы Windows обычно используются, когда приложение необходимо постоянно запускать. Например, если необходимо:
- Ждите входящих запросов. (Как через Remoting или ФОС)
- Мониторинг очереди, файловой системы и т.д.
Если программа просто нужно периодически запускать, как раз в день. Обычно проще создать запланированную задачу.
Служба Windows может запускаться сразу же после включения питания компьютера, что идеально подходит для работы в качестве сервера, например, для http-сервера. Никто не должен входить в систему.
Ну, служба Windows предоставляет полную инфраструктуру для работы вашего приложения и оставаться активной, пока вы этого хотите, поэтому я думаю, что все в порядке.
службы Windows являются правильная вещь, чтобы использовать что-то, что должны работать все время, независимо от того, или не зарегистрирован пользователь в.
Если вам нужно что-то, чтобы работать без активного пользователя, вошедшего в систему, вы нужны для использования службы Windows.
Если вам нужно, чтобы приложение запускалось, даже когда никто не физически вошел в систему, что является общим для серверных машин, в этом случае хороший кандидат. Тем более, что услуга может быть настроена на автоматический запуск, что означает, что услуга начнется, когда машина будет перезагружена с помощью вмешательства человека.
Если же вы желаете, чтобы разместить веб-служб (WCF) в то время как служба вариант, вы можете рассмотреть возможность размещения в IIS, это избавляет вас от написания фактического хостинг-кода и т.д.
- 1. Когда мы используем Element? Когда мы используем Helper? Когда мы используем View Cells? в CakePHP 3
- 2. Когда мы используем recyclerView.setHasFixedSize?
- 3. Когда мы используем XMLSerialization?
- 4. Когда мы используем MVVM?
- 5. Когда мы действительно используем Trie?
- 6. Когда/где мы используем XMLRPC
- 7. Когда мы (действительно) используем RenderScript?
- 8. Android: Когда мы используем getIntent()?
- 9. Когда мы используем файл msbuild?
- 10. Где/когда мы используем JSON?
- 11. Когда мы используем транзакции WCF?
- 12. Когда мы используем Yii RbAC?
- 13. когда используем процедуру и когда мы используем функцию?
- 14. Когда мы используем $ scope, и когда мы используем var в AngularJS?
- 15. Когда мы используем глобальные индексы и когда мы используем локальные индексы в Oracle?
- 16. Что именно происходит, когда мы используем ajax
- 17. Что произошло, когда мы используем публикацию clickonce
- 18. когда мы используем блокировку и разблокировку QMutexLocker?
- 19. Что происходит, когда мы используем updatepanel?
- 20. Когда мы используем Assert.Pass() в DUnitX?
- 21. Когда мы используем HashSet <>
- 22. GUI приклеивается, когда мы используем double Stream
- 23. Когда мы используем поставщиков в Angular 2?
- 24. ERR_CONNECTION_REFUSED когда мы используем https: // без WWW
- 25. C++ исключения уловов, когда мы используем классы
- 26. , когда мы используем @controller и MultiActionController вместе
- 27. , когда мы используем веб-службы SOAP?
- 28. Что происходит, когда мы произвольно используем ==?
- 29. Когда мы используем функцию web_set_timeout в loadrunner?
- 30. Когда мы не используем Combiner в Mapreduce?
Если вы идете с сервисом , убедитесь, что вы не открыли диалоговое окно сообщения или что-то еще. Похоже на здравый смысл, но я видел много раз, когда приложение разрабатывается как общее приложение, в котором для отладки используются почтовые ящики и такие, которые затем развертываются как служба, не удаляя эти диалоги отладки. –