监控.net中正在运行的应用程序

本文关键字:运行 应用程序 net 监控 | 更新日期: 2023-09-27 17:49:31

我们有几个在Windows 2003/2008服务器上运行的应用程序。其中一些应用程序是Java JAR文件,使用app.cmd文件通过Scheduled Task启动。

其他是"大",如SQL Server和IIS。

我想写一个应用程序(或服务,实际上),只是监视这些程序,看看他们是否正在运行。

这比我以前做过的要多一点。哦,这需要用c#写。

我正在考虑某种类型的"心跳"模式,以便每隔几分钟,我检查线程是否正在运行(再次,新的高级线程),如果是,发送一个"一切正常"消息(使用SMTP或其他东西)。

有什么建议吗?

谢谢你的建议

监控.net中正在运行的应用程序

您可以使用Process.GetProcesses():

使用此方法创建新的Process组件数组,并将它们与本地计算机上的所有进程资源相关联。

您可能应该逐个处理每个应用程序,例如,虽然您可以检查SQL Server进程的存在性,但您最好运行查询(例如)检查服务器中给定数据库的存在性。

同样,你也可以对IIS服务器运行一个简单的HTTP请求来检查是否正确设置了权限等…

显然,你测试你的Java进程的方式将取决于他们做什么,尽管你仍然可以只是检查,看看进程是否正在运行(要注意,如果他们作为一个服务运行,他们可能运行在svchost.exe进程中的一个-这并不适用于计划任务,虽然)。