我在我的數據庫中有一個任務表。我想從此表中讀取數據並運行任務。哪一個更好,是否將其作爲Windows服務或控制檯應用程序運行。運行此服務器的服務器將不會關閉有Windows服務或控制檯應用程序很好嗎?
回答
你很可能想要使用Windows服務。
優點:
- 您可以控制啓動過程
- 自動啓動的程序是指在桌面需要上,而不是用戶登錄(與該用戶帳戶關聯和權限)的用戶,爲服務運行
- 失敗的策略可以被定義(嘗試重新啓動ñ如果失敗次運行特定的程序)
- 依賴關係可以定義(如果你依賴於其他服務隊)
- 你可以用你的腳本在不可見的窗口
- 您可以輕鬆地啓動/停止/啓動腳本(
net start <scriptname>
)
從這裏引:What is the benefit of developing the application as a windows service?
Windows服務,因爲它不需要登錄用戶。
我會說; Windows服務。
在這種情況下(其中包括)您不需要用戶登錄,您可以配置它以便在出於某種原因關閉時自動重新啓動,並且您(可以)擁有廣泛的權限系統。
Windows服務一般。如果服務器在Windows服務可以自動啓動時重新啓動,則需要重新啓動控制檯應用程序。
運行控制檯應用程序不是其他人所說的選項。
如果您只是希望每x分鐘運行一次任務,最簡單的選項是使用控制檯應用程序的計劃任務。
Windows服務有它的好處,但實施和部署要複雜一點。但是,如果您的應用需要「始終開啓」(例如需要響應外部觸發器,聽取消息隊列......),則Windows服務是唯一的選擇。正如其他人所說,在服務基礎設施還提供了更多的管理功能,內置了與事件日誌,重新啓動和故障恢復選項集成...
謝謝Jeroenh!是的,這正是我的要求,我應該能夠觸發任務說,每X分鐘..你能告訴它有多複雜,它與服務? – Juni 2012-07-30 13:01:44
http://www.pedautreppe.com/post/How-to-create-(and-deploy)-a-a-windows-service-in-C-.aspx – jeroenh 2012-07-30 13:41:16
但正如我在我的回答中所述,如果你只是需要每x分鐘運行一次任務,計劃任務就容易得多,並且具有許多相同的優點(可以運行無人值守,輕鬆部署,與事件日誌集成等) – jeroenh 2012-07-30 13:42:43
你應該看看:https://github.com/thedavejay/Self-Installing-Windows-Service
它允許你調試作爲控制檯應用程序,然後將其安裝爲Windows服務。
- 1. 控制檯應用程序通過Windows服務的好處
- 2. Windows服務或控制檯應用程序中的System.Timers.Timer
- 3. Windows服務或控制檯應用程序?
- 4. 在後臺運行的服務或控制檯應用程序?
- 5. 控制檯應用程序到服務
- 6. REPL控制檯應用程序服務
- 7. 等效System.Windows.Forms.Application.ThreadException爲控制檯應用程序或Windows服務或一般
- 8. 在Windows控制檯應用程序中使用ax2012服務
- 9. 控制檯應用程序與Windows服務進行通信
- 10. 在Windows服務主機控制檯應用程序
- 11. 從vb.NET控制檯應用程序到Windows服務
- 12. 在Windows服務器上預定的控制檯應用程序
- 13. Windows服務參數爲控制檯應用程序
- 14. 將C#控制檯應用程序作爲Windows服務運行
- 15. 如何將控制檯應用程序轉換爲Windows服務?
- 16. 將控制檯應用程序安裝爲Windows服務
- 17. SUBST和控制檯應用程序與Windows的服務
- 18. 將控制檯應用程序轉換爲Windows服務
- 19. 運行Windows服務作爲一個控制檯應用程序
- 20. Windows服務和更新C#控制檯應用程序
- 21. 使用Windows服務或控制檯應用程序獲取access_token。對於Instagram Api
- 22. 控制檯應用程序或Web服務
- 23. Windows服務或控制檯應用程序中的文件系統觀察器?
- 24. 如何動態地或者控制檯應用程序或Windows應用程序
- 25. 在Windows控制檯應用程序
- 26. C#控制檯和Windows應用程序
- 27. C++控制檯應用程序可以用戶友好嗎?
- 28. Windows Phone後臺應用程序服務
- 29. 在Windows Server 2003中安裝控制檯應用程序作爲Windows服務
- 30. windows服務控制器應用程序編程接口驅動程序服務
優秀的答案。我會補充一點,對於高級場景,您可以直接在您的服務中託管一個小型Web應用程序。這將允許您遠程控制或監視服務(只要注意安全隱患)。一個例子是[Rabbitmq管理服務](http://www.rabbitmq.com/management.html)。一個小型嵌入式Web服務器允許amdinistrator遠程監控服務 – 2012-07-30 13:06:09