2009-01-14 48 views
18

我打算開發一個應用程序,它將處理在線數據(通過套接字),並且不需要任何用戶交互。將應用程序開發爲Windows服務有什麼好處?

我在想一個簡單的控制檯應用程序,但是Windows服務怎麼樣才能提供額外的好處? (我知道,窗口服務並不需要用戶登錄到運行服務,但我問的額外收益)

回答

17

在我的頭頂:

  • 您可以控制用戶(以及相關的權利與此用戶帳戶)啓動過程
  • 自動啓動的過程意味着桌面需要打開,而不是用戶登錄,服務運行
  • 可以定義故障的策略(嘗試重新啓動n次運行如果特定程序失敗)
  • a dependenc Y可以被定義(如果你依賴於其他服務隊)
  • 你可以用你的紙條在invisible windows
  • 您可以輕鬆地啓動/停止/啓動腳本(net start <scriptname>
2

事實上,它確實取決於你的應用程序的用法,我想。

例如,如果您只需要在特定時間運行處理,命令行的使用就足夠了。

如果您的過程需要連續運行,並且靜默(無用戶交互),那麼windows服務將非常有趣。

您也可以考慮在Windows中的任務調度。基本上,它會在指定的時間運行你的應用程序(例如通過一個.bat文件)。如果您的應用程序需要每天在02:00運行,例如... 在「控制面板」中,您可以選擇「計劃任務」。然後,點擊「添加任務計劃」,然後按照嚮導...

4
  1. 您可以從另一臺計算機管理服務(啓動/停止)
  2. 作爲服務寫入事件日誌,你也可以監測從另一臺機器服務
  3. 沒有一個必須要登錄的服務運行
6

我不能添加任何VonC的清單,但(雖然沒有從一個普通的應用程序做這個阻止你)我會補充說,如果你使用的是通常的微軟工具(VS &.net),它很容易做到這一點。

我創建了一個包含我所有應用程序邏輯的類庫以及一個具有.Start()和.Stop()方法的MyServer類。然後,您可以創建一個控制檯應用程序和winservice應用程序,它們都可以引用它例如。控制檯App實例化一個新的MyServer,調用Start,等待按鍵並調用Stop。

我在開發過程中使用控制檯應用程序,並使用Windows服務進行部署。

+0

這是偉大的,但我要開發它使用c + +(win32應用程序) – 2009-01-14 09:14:03

相關問題