2011-04-08 32 views
4

我們有幾個在Windows 2003/2008服務器上運行的應用程序。其中一些應用程序是使用app.cmd文件以Scheduled Task啓動的Java JAR文件。在.NET中監視正在運行的應用程序?

其他人是像SQL Server和IIS這樣的「大人物」。

我想寫一個應用程序(或服務,實際上),只是監視這些程序,看看他們是否運行。

這有點超出了我之前做過的。哦,這需要用C#編寫。

我正在考慮某種類型的「心跳」模式,以便每隔幾分鐘檢查一次線程是否正在運行(再一次,新的高級線程),如果是,發出一個「All's OK」消息SMTP或其他)。

任何提示從哪裏開始?

感謝您的任何建議。

回答

2

您可以使用Process.GetProcesses()

使用此方法來創建新的流程組件陣列,並將它們與本地計算機上的所有進程資源關聯。

2

你或許應該處理一個案件逐案基礎上的每個應用程序,爲的exaple雖然你可以只檢查SQL Server進程是否存在等,你會更好運行一個查詢,(例如)檢查服務器中給定數據庫的存在。

同樣可以運行鍼對IIS服務器的簡單的HTTP請求進行檢查,以確保權限設置是否正確等設置...

很顯然,你測試你的Java進程將取決於這樣他們儘管你仍然可以檢查是否正在運行進程(請注意,如果它們作爲服務運行,它們可能在svchost.exe進程中運行 - 但這不適用於計劃任務) 。

相關問題