Wie läuft ein Windows-Dienst unterscheiden sich von einem standard-exe?
Was ist der Unterschied zwischen einem Windows-und einem standard-exe?
InformationsquelleAutor der Frage LearningCSharp | 2010-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Windows-Dienst läuft immer sobald der computer gestartet wird (solange es so konfiguriert). Ein standard-EXE nur ausgeführt wird, wenn ein Benutzer angemeldet ist, und wird angehalten, wenn der Benutzer sich abmeldet.
Würden Sie ein windows-Dienst für Dinge, die immer ausgeführt werden müssen, selbst wenn niemand angemeldet ist.
Verwenden Sie ein standard-EXE für Programme, die ein Benutzer ausführen, während Sie eingeloggt sind.
InformationsquelleAutor der Antwort Eric J.
Einen Windows-Dienst ein spezielles
ServiceMain
Funktion und muss reagieren auf Service Control Manager (SCM) - Befehle richtig um funktionsfähig zu sein als Dienstleistung an. Auf der anderen Seite, ist eine regelmäßige ausführbare Datei hat einemain
oderWinMain
Funktion und braucht nicht zu reagieren, um eine bestimmte Steuerbefehle.InformationsquelleAutor der Antwort Greg Hewgill
Wenn Sie im Gespräch über die Umsetzung einer background-operation, hier sind die Kriterien, die ich empfehlen würde zu wählen, einen service oder ein Fenster weniger .exe:
Wählen Sie eine exe-Datei, wenn:
Wählen Sie einen Dienst, wenn:
Dienstleistungen kann problemlos Sicherheitslücken, so lieber .exe ' s zu Diensten. Manchmal benötigen Sie beide. Ein Virenschutzprogramm muss in der Lage sein, Zugriff auf jede Datei auf dem Dateisystem (dem der aktuelle Benutzer möglicherweise nicht in der Lage, das zu tun), aber es muss außerdem eine info an die Benutzer in form von Benachrichtigungs-Dialoge/pop-ups und ein tool tray-icon. Dienstleistungen können nicht mit dem Benutzer interagieren die GUI direkt. Sie können die Windows-standard-IPC (inter-Prozess-Kommunikation) - Dienste wie pipes und shared-memory-Regionen. Solche Instrumente haben in der Regel sowohl eine service-und eine pro-Benutzer fensterlos .exe-Datei, die die Kommunikation mit dem Dienst mithilfe der Windows-pipes oder shared memory Regionen.
Bekommen "Programming Windows Security" von Keith Brown wenn Sie wollen Tauchen Sie ein in diese Themen.
InformationsquelleAutor der Antwort David Gladfelter
Service ist (meist) ein standard-exe ohne UI. Es kann auch ausgeführt werden, wenn keine Benutzer angemeldet sind, in der Maschine, und es ist, die Zugriffsrechte und die Sicht auf die Datei-system ist nicht abhängig von, was Benutzer angemeldet ist.
InformationsquelleAutor der Antwort John Knoeller
Aus der Perspektive der EXE-Binary und aus der Perspektive der Compiler die C-Bibliothek, die einen Windows-Dienst sieht genau wie ein standard-Unix-Programm oder eine Windows-Konsole. ich.e mit
main()
Einstiegspunkt. Was macht ein service anders ist, ist, wie es ist geladen /aufgerufen von Microsoft Windows (aus der registry, in der Regel beim Booten). Ein Dienst kann (und sollte) sagen, das SC.exe Anwendung [Service Control Manager] über die Windows-API-Aufrufe, dass der Dienst gestartet, gestoppt, ausgesetzt, etc.InformationsquelleAutor der Antwort unixman83