2010-07-12 98 views
2

我將有一個C#應用程序,它將從時鐘獲取數據並每隔兩週向每位員工發送一封電子郵件。c#應用程序作爲服務運行有什麼優勢?

將應用程序自動作爲服務運行有什麼優勢?

+0

而不是作爲一個?? – 2010-07-12 20:20:59

+2

@KP:嗯,我還建議(在我的答案中)可能使用任務調度程序並將其作爲預定的控制檯應用程序運行。這確實有一些優點... – 2010-07-12 20:22:17

回答

12

它不需要用戶登錄,並且可以配置爲在您選擇的帳戶/權限集下運行。諸如此類(從描述中)應用程序的意圖是「永遠在線」,它們傾向於作爲服務最有意義。

但是,如果您正在做的事情每兩週運行一次,您可能還想考慮一個控制檯應用程序作爲計劃任務運行。這具有允許應用根據需要運行的優點,並且不會駐留在內存中。這在系統資源利用率方面更好。它也使得時間表的「重新配置」變得非常容易,因爲它不需要改變應用程序本身。

+2

+1作爲計劃任務,在控制檯應用程序上的良好通話 – 2010-07-12 20:25:11

+4

我的老闆<3爲投票創建服務。相信我,當你有大約10個這樣的人時,你正在將故障船直接帶到代碼管理地獄。 – 2010-07-12 20:35:10

3
  • 運行沒有被記錄在任何人(例如服務器上)啓動後 - 無需啓動它,等
  • 您可以輕鬆地開始,暫停,停止它
  • 可以使其運行在給定的服務帳戶下
+0

這些相同的事情可以用作爲計劃任務運行的程序完成。 – 2010-07-12 20:22:26

+1

@Mthethew Whited:是的,但是有人需要先登錄.....如果您的機器啓動了,但沒有人登錄,那麼該機器上的計劃任務將不會執行,而服務已經運行在有人登錄之前 – 2010-07-12 20:23:41

+3

任務計劃程序可以在沒有登錄的情況下安排任務 - 這取決於您如何設置計劃任務。調度程序本身作爲服務運行,並且計劃的任務不一定需要用戶登錄... – 2010-07-12 20:25:45

1

如果它作爲服務運行,沒有用戶必須登錄,它可以自動重新啓動並以具有系統權限的SYSTEM運行。

1

我想你回答了你自己的問題。

如果您的應用程序自動作爲服務運行,它將在服務器啓動時自動啓動。然後,它可以定期檢查時間,以確定它是否應該執行任何可能的工作。

最主要的好處是它可以自動運行,而無需通過加載程序並在執行時旋轉拇指的任務來完成任務Bill(或任何人)。

1
  • 不與桌面
  • 可在低權限的帳戶下運行交互,所以如果受到損害,損害可以限制
  • 並不需要用戶登錄才能運行
相關問題