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

4
我们有几个应用程序运行在Windows 2003/2008服务器上。其中一些应用程序是Java JAR文件,使用app.cmd文件的计划任务启动。
其他的应用程序像SQL Server和IIS这样大型应用程序。
我想编写一个简单的应用程序(或服务),它只是监视这些程序并查看它们是否正在运行。
这比我以前做过的事情要难一点。哦,这需要使用C#编写。
我考虑一种“心跳”模式,以便每隔几分钟检查线程是否在运行(再次进行新的高级线程),如果是,则发送“一切正常”的消息(使用SMTP或其他方式)。
有什么建议从哪里开始吗?
感谢任何建议。
2个回答

2
你可以使用 Process.GetProcesses() 方法:

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


2
你应该针对每个应用程序进行个案处理,例如,尽管你可以仅检查SQL Server进程的存在性,但最好运行一个查询(例如)来检查服务器中给定数据库的存在性。
同样,你可以针对IIS服务器运行一个简单的HTTP请求,以确保权限设置正确等等...
显然,你测试Java进程的方式将取决于它们所做的事情,尽管你仍然可以仅检查进程是否正在运行(请注意,如果它们作为服务运行,则可能在其中一个svchost.exe进程内运行 - 这不适用于计划任务)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接