我只創建了常規的Windows應用程序(主要是C#)。什麼區分Windows服務和普通的Windows應用程序?是什麼讓他們不同?服務可以做什麼,應用程序不能?從開發者的角度看,有什麼不同?你如何創建一個?僅僅是爲了創建一個普通的應用程序(可能是控制檯應用程序,因爲沒有GUI?)並以特殊方式運行或安裝它,還是需要執行更多操作?Windows服務和常規應用程序有什麼區別?
回答
有幾件事立即跳出來給我。
- 它們運行在一個完全不同的控制檯與Vista
- 開始作爲一個不同的控制檯上運行的結果是,服務無法與桌面交互。所以基本上沒有直接的UI支持。您通常必須編寫一個兄弟UI應用程序,該應用程序作爲普通程序運行,並使用一些機制(例如命名管道)與該服務進行通信。
- 通常,只有一個服務實例可以在任何給定時間運行。
- 流程是每個用戶,服務是每個工作站,因此經常爲多個用戶提供服務。
主要區別在於Windows服務是您想要作爲後臺服務運行的東西,並且不需要用戶界面。一個例子是一個服務,索引您的驅動器上的文件進行搜索。 。
的另一個好處是,你可以當
用戶登錄也有可以覆蓋在服務啓動時調用方法服務自動啓動/停止(即從控制面板|。管理工具|服務)。
在Visual Studio中有一個特殊的項目類型可以用來創建它。例如,請參見下面的網站:http://www.dotheweb.net/articles/dotnet/services.aspx
This MSDN page導致更多關於創建它們的文檔,而不是您可以動搖的地方。 This page對他們來說可能是一個更好的介紹。
作爲應用程序運行的進程與作爲服務運行的進程之間的主要區別在於,服務完全可以在與用戶和會話的正常關聯之外運行。因此,服務可以在任何用戶登錄之前運行,並且可以在用戶註銷後繼續運行。服務因此用於實現操作系統的大量實際功能。
服務也不像綁定到一個進程的1:1映射。許多服務可以在一個進程中存在,通常通過使用svchost(使用進程資源管理器查看這些信息以指示常用工作方式)。這減少了啓動時的工作量,因爲相對輕量級的服務不需要多個進程。
在c#中實現一個服務非常簡單,這個page指出瞭如何非常容易地遵循術語。
請注意,實際上Windows中的服務只是在HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services下的註冊表中的腳手架,它定義了那些'圖像路徑'(在大多數情況下簡單的可執行文件和要使用的參數)考慮服務以及隨後由哪個用戶運行,他們依賴哪些其他服務以及他們是從啓動/啓動後啓動還是根據需要啓動。
如果您熟悉Unix,則Windows服務就像是一個Unix守護進程。它不與任何特定的用戶關聯,並且始終在後臺運行。
- 1. 常規的Rails應用程序和Rails API有什麼區別?
- 2. Web服務和Web應用程序有什麼區別?
- 3. Windows程序調用有什麼區別?
- 4. Web服務和Windows服務之間有什麼區別?
- 5. 網絡服務器和應用服務器有什麼區別
- 6. Windows 8 Phone應用程序和Metro風格應用程序有什麼區別?
- 7. Rack應用程序和Sinatra應用程序有什麼區別?
- 8. Windows服務與Windows進程有什麼區別?
- 9. SQL作業和Windows任務計劃程序有什麼區別?
- 10. WCF ajax服務而不是WCF服務應用程序有什麼區別?
- 11. Web服務和RPC有什麼區別?
- 12. IntentService和服務有什麼區別?
- 13. 活動和服務有什麼區別
- 14. 「服務帳戶」和「已安裝的應用程序」有什麼區別?
- 15. 程序和應用程序有什麼區別?
- 16. 應用服務,域名服務和基礎設施服務有什麼區別?
- 17. 在Windows應用程序和Silverlight中使用WCF的過程有什麼區別?
- 18. 在windows服務中停止和暫停有什麼區別?
- 19. PaaS和應用服務器託管有什麼區別?
- 20. WPF應用程序與Winforms應用程序有什麼區別?
- 21. 驗證規則和業務規則有什麼區別?
- 22. 編程JavaFX應用程序時使用JavaFX腳本和使用常規java語法有什麼區別
- 23. 工作進程,應用程序池和應用程序域有什麼區別?
- 24. Windows 8 Mobiles應用程序和Windows 8 metro風格應用程序有什麼區別
- 25. JPA和JDO規範有什麼區別?
- 26. 測試和規格有什麼區別?
- 27. 代碼和程序有什麼區別?
- 28. 「Windows Phone應用程序」和「Silverlight for Windows Phone應用程序」有何區別?
- 29. Azure API應用程序和Azure服務結構之間的區別是什麼?
- 30. Facebook上的應用程序和Pages上的應用程序有什麼區別?
我寧願說你可以讓服務在機器上沒有任何交互式會話的情況下運行。您可以在用戶以各種方式登錄時啓動許多或程序。使用服務並不是真正的好處。 – Joey 2009-08-01 22:51:11