2010-05-21 74 views
5

我們應該使用Windows服務嗎?
我正在構建一個客戶端服務器項目(c#),並且服務器應該單獨工作而沒有任何用戶,所以有人建議我使用Windows服務來運行服務器,是嗎?還是有更好的解決方案?我們什麼時候使用windows服務?

+3

如果你有一個服務去的,確保你不會彈出消息對話框或任何東西。看起來像常識,但我多次看到應用程序是作爲一個通用應用程序開發的,其中消息框等用於調試,然後將其作爲服務進行部署,而無需刪除這些調試對話框。 – 2010-05-21 17:30:52

回答

6

在你情我願用服務爲以下原因:

  • 你並不需要有一個會話保持運行。這對安全性很好,並且還可以減少服務器上的開銷。
  • 你得到一些建於同治命令的免費
    • 開始
    • 停止
    • 暫停
    • 繼續
  • 您可以處理服務器事件,如關機。
1

您應該創建一個Windows服務在後臺運行的代碼,而無需用戶交互。

例如,Windows服務將即使沒有人登錄上運行。

接受連接(如郵件,Web或FTP服務器)的任何服務器通常應該是一個Windows服務。

7

Windows服務正常使用時,應用程序需要連續運行。例如,如果他們需要:

  1. 等待傳入的請求。 (就像通過遠程或WCF)
  2. 監控隊列,文件系統等

如果一個程序只需要定期運行,比如一天一次。創建計劃任務通常更容易。

6

Windows服務能夠儘快機器加電時開始運行,這使得非常適合運行的,例如服務器,HTTP服務器。沒有人需要登錄。

1

好了,Windows服務爲您的應用程序工作,而你希望它保持活躍一個完整的框架,所以我覺得它的確定。

1

Windows服務是用於應該運行所有的時間,在一個用戶是否登錄一些正確的事情。

如果你需要的東西,沒有一個活躍的用戶登錄的運行,你需要使用Windows服務。

1

當您需要應用程序開始運行時,即使沒有人物理登錄到計算機(這在服務器計算機中很常見),在這種情況下服務是很好的選擇。特別是因爲可以將服務配置爲自動啓動,這意味着服務將在機器重新啓動且無人爲干預時啓動。

然而,如果你是想託管Web服務(WCF),而服務是一種選擇,你可以考慮在IIS託管,這免除了您編寫實際的代碼託管等

相關問題