2009-05-23 165 views
4

我需要實現在遠程Windows服務器24/7上運行的後臺進程。我的開發環境是C#/ ASP.NET 3.5。這個過程的目的是:如何讓進程在遠程Windows服務器上運行

  • 發送提醒郵件,以在適當的時間員工和客戶(比如5:00 PM當天作業計劃之前)
  • 查詢和保存員工的GPS座標當他們應該出外工作時,我可以稍後確認他們的職位是他們應該在的地方。

如果該進程失敗(它有可能會被添加更新尤其是當),我需要它立即重新啓動(或短短几分鐘內),如果這個過程失敗,我會很嚴重的問題發送通知,記錄GPS座標或任何其它旨在執行的任務。

回答

8
  1. 將您的過程實現爲Windows服務。 有關 如何編碼Windows服務的簡單示例,請訪問 .Net,網址見http://www.developer.com/net/csharp/article.php/2173801

  2. 要控制會發生什麼情況應該 服務無法通過 「恢復」選項卡上的在SERVICES.MSC服務 配置此。 (見下圖)

  3. 對於higly關鍵的操作你 可能會考慮建立一個服務器集羣減輕單 服務器故障(見http://msdn.microsoft.com/en-us/library/ms952401.aspx)。

alt text

5

您需要Windows服務。您可以在Windows服務中執行非視覺迭代操作。

+0

你能解釋一下如何讓服務自動重啓嗎? – DOK 2009-05-23 18:57:06

1

除了作爲服務之外,您可能希望在羣集上運行,並使羣集管理軟件知道您的服務。

2

另一種選擇是創建一個正常的應用程序並按計劃運行它。您的應用程序每天在特定時間運行以執行其操作,具體取決於您需要記錄GPS座標和發送報告的頻率。如果你的服務不需要經常運行,這通常是推薦的方法,因爲服務應該限於永遠在線的應用程序。

1

您可以創建Windows服務(Windows上的服務器編程)或使用調度程序定期執行任務。

根據高可用性的要求,程序可以安裝在故障轉移羣集上,其中將啓動其他服務器(被動節點),並在第一個(主動節點)死亡時靜靜地等待熱備份。這是一個廣泛的話題。從維基百科上的High availablity開始。

1

以我的經驗,如果你需要運行,你需要有(一個或多個)看門狗過程來驗證您的服務(S)的正常運行全天候的東西。僅僅依靠正常的服務框架並不能保證程序運行正常 - 即使它看起來像在運行。看門狗程序(也是服務)可以自動查詢服務,例如發佈消息檢查響應時間,查詢統計數據等 - 當它檢測到問題時,它可以重新啓動服務(或者執行其他故障恢復)

使用看門狗程序而不僅僅依賴用戶查詢檢測錯誤是它可以自動完成。這是首選的方法,因爲它允許主動檢測。

相關問題