Я создал только обычные приложения для Windows (в основном C #). Что отличает службу Windows от обычного приложения Windows? Что их отличает? Что может сделать служба, чего не может приложение? Какие различия видны с точки зрения разработчиков?
Как вы его создаете? Просто создать обычное приложение (может быть, консольное приложение, поскольку графического интерфейса нет?) И запустить или установить его особым образом, или это нечто большее?
person Svish schedule 01.08.2009 source источник
Ответы (4)
- Они запускаются в совершенно другой консоли, начиная с Vista.
- В результате работы на другой консоли службы не могут взаимодействовать с рабочим столом. По сути, прямой поддержки пользовательского интерфейса нет. Обычно вам приходится кодировать одноуровневое приложение пользовательского интерфейса, которое работает как обычная программа и использует некоторый механизм (например, именованные каналы) для связи со службой.
- Обычно в любой момент времени может быть запущен только один экземпляр вашей службы.
- Процессы для каждого пользователя, услуги для каждой рабочей станции и, следовательно, часто предоставляют услуги для нескольких пользователей.
person JaredPar schedule 01.08.2009
Почему стоит перейти на линукс прямо сейчас | Топ 5 причин перейти с Windows на Linux
На этой странице MSDN приведена дополнительная документация по их созданию. чем вы могли бы встряхнуть палкой. Эта страница, возможно, является лучшим введением в них в Общее.
Ключевое различие между процессом, работающим как приложение, и как сервис, заключается в том, что сервис может работать полностью вне обычной связи с пользователем и сеансом. Таким образом, службы могут работать так, что они запускаются до входа любого пользователя в систему и могут продолжать работу после выхода пользователей из системы. Таким образом, службы используются для реализации большей части фактических функций операционной системы.
Службы также не привязаны к работе как отображение 1: 1 с процессом. Многие службы могут существовать в одном процессе, обычно за счет использования svchost (посмотрите на них с помощью проводника процессов, чтобы понять, как это часто работает). Это снижает усилия при запуске, поскольку для относительно легких сервисов не требуется несколько процессов.
Реализовать службу на C # довольно просто, эта страница показывает, как очень легко соблюдать условия.
Обратите внимание, что на самом деле служба в Windows — это немного больше, чем строительные леса в реестре в разделе HKEY_LOCAL_MACHINE System CurrentControlSet Services, который определяет те « пути к изображениям » (в большинстве случаев просто исполняемые файлы и параметры для использования), которые считаются службами вместе с от имени какого пользователя затем запускается, от каких других служб они зависят и запускаются ли они при запуске / после запуска или по мере необходимости.
person ShuggyCoUk schedule 01.08.2009
Если вы знакомы с Unix, служба Windows похожа на демон Unix. Он не связан с каким-либо конкретным пользователем и всегда работает в фоновом режиме.
Как люди представляют программиста, и как он выглядит на самом деле!
person quanticle schedule 01.08.2009
Основное отличие состоит в том, что служба Windows — это то, что вы хотите запускать в качестве фоновой службы и не требует пользовательского интерфейса. Примером может служить служба, индексирующая файлы на вашем диске для поиска.
Еще одно преимущество — вы можете автоматически запускать службы при входе пользователя в систему.
Существуют также методы, которые вы можете переопределить и которые вызываются при запуске / остановке службы (например, из Панели управления | Администрирование | Службы).
В Visual Studio есть специальный тип проекта, который вы можете использовать для его создания. См. Пример на сайте ниже: http://www.dotheweb.net/articles/dotnet/services.aspx
person soundslike schedule 01.08.2009
Я бы сказал, что вы можете запускать службы без каких-либо интерактивных сеансов на машине. Вы можете запускать партии или программы, когда пользователь входит в систему различными способами. Использование службы на самом деле не является преимуществом. — person Joey; 02.08.2009
Источник: digitrain.ru
В чем разница между приложением, процессом и услугами?
Кажется, что у каждого Приложения есть связанный процесс, который выключает его, если он выключен. Похоже, один процесс может управлять более чем одним экземпляром приложения. А Сервисы, я даже не уверен, что они, точно.
Они не сами процессы?
изменён fixer1234 19k
задан Justin L. 519
3 ответа 3
И приложения, и сервисы имеют связанные с ними процессы.
Приложение — это программа, с которой вы взаимодействуете на рабочем столе. Это то, что вы проводите почти все свое время на компьютере. Internet Explorer, Microsoft Word, iTunes, Skype — все это приложения.
Процесс — это экземпляр определенного исполняемого файла ( файл программы .exe ). В данном приложении может быть запущено несколько процессов одновременно. Например, некоторые современные браузеры, такие как Google Chrome, запускают несколько процессов одновременно, причем каждая вкладка фактически является отдельным экземпляром / процессом одного и того же исполняемого файла. В некоторых случаях сложные приложения могут иметь несколько процессов; например, Visual Studio запускает отдельный процесс, когда компилирует код от отображения среды IDE. Однако чаще всего данное приложение выполняется из одного процесса; Например, независимо от того, сколько окон Microsoft Word у вас открыто, работает только один экземпляр winword.exe .
Сервис — это процесс, который работает в фоновом режиме и не взаимодействует с рабочим столом. В Windows службы почти всегда запускаются как экземпляр процесса svchost.exe , хост-процесса службы Windows; однако иногда бывают исключения из этого.
Иногда процессы могут работать в фоновом режиме, не взаимодействуя с рабочим столом, но без установки в качестве службы. Многие драйверы устройств с расширенными функциями делают это. Например, драйвер тачпада обычно имеет процесс, который запускается, когда пользователь входит в систему и обрабатывает специальные функции тачпада, но не является службой и не показывает пользователю никаких окон.
Иногда приложение может зависеть от определенного сервиса. Печать из любой программы требует, чтобы служба диспетчера очереди печати была активна. Установочные пакеты (установщики .msi ) требуют, чтобы служба установщика Windows работала. Антивирусные программы обычно используют службу, поэтому они могут продолжать работать, даже если пользователь не вошел в систему.
Процессы обычно завершаются, когда приложение закрывается, однако это не всегда так. Некоторые программы, особенно программы загрузки и резервного копирования, могут продолжать работать в фоновом режиме без отображения каких-либо окон. Антивирус также является примером этого — в дополнение к использованию службы, многие антивирусные приложения запускают процесс в фоновом режиме, который отображает приложение для пользователя только тогда, когда требуется действие.
Источник: poweruser.guru
В чем разница между службой Windows и обычным приложением?
Я создал только обычные приложения Windows (в основном С#). Что отличает службу Windows от обычного приложения Windows? Что их отличает? Что может сделать служба, которую приложение не может сделать? Каковы различия, наблюдаемые с точки зрения разработчиков? Как вы его создаете?
Это просто для создания обычного приложения (возможно, приложение Console, поскольку нет gui?), И запускать или устанавливать его особым образом, или это еще нужно сделать?
Svish 02 авг. 2009, в 01:20
Поделиться
Поделиться:
windows-services
comparison
4 ответа
Лучший ответ
- Они запускаются в совершенно другой консоли, начиная с Vistali >
- В результате работы в другой консоли службы не могут взаимодействовать с рабочим столом. Таким образом, по сути, нет прямой поддержки пользовательского интерфейса. Обычно вам нужно закодировать приложение для пользовательского интерфейса, которое запускается как обычная программа и использует какой-то механизм (например, именованные каналы) для связи с этой службой.
- Обычно в любой момент времени может работать только один экземпляр вашей службы.
- Процессы на пользователя, службы на рабочую станцию и, следовательно, часто предоставляют услуги для нескольких пользователей.
JaredPar 01 авг. 2009, в 22:43
Поделиться
Эта страница MSDN ведет к большей документации по их созданию, чем вы могли бы встряхнуть палку. Эта страница, возможно, является лучшим введением к ним в целом.
Ключевое различие между процессом, выполняемым как приложение, как служба, заключается в том, что служба может работать полностью вне обычной связи с пользователем и сеансом. Таким образом, службы могут запускаться так, что они запускаются до того, как пользователь войдет в систему и сможет продолжить работу после выхода пользователей из системы. Таким образом, службы используются для реализации значительных функциональных возможностей операционной системы.
Службы также не привязаны к запуску как отображение 1:1 с процессом. Многие службы могут существовать в рамках одного процесса, обычно с использованием svchost (посмотрите на них с помощью проводника процессов, чтобы узнать, как это часто работает). Это уменьшает усилия при запуске, поскольку для относительно легких сервисов не требуется несколько процессов.
Реализация службы в С# довольно проста, эта страница показывает, как очень легко следовать условиям.
Обратите внимание, что на самом деле служба в окнах — это немного больше, чем леса в реестре под HKEY_LOCAL_MACHINESystemCurrentControlSetServices, которые определяют эти «пути к изображениям» (в большинстве случаев просто исполняемые файлы и используемые параметры) сервисы, вместе с которыми пользователь запускает, какие другие службы они зависят, и запускаются ли они при запуске/отправке сообщения или по мере необходимости.
Источник: overcoder.net