+ -
当前位置:首页 → 问答吧 → 监控进程发生异常

监控进程发生异常

时间:2011-12-06

来源:互联网

有2个程序,A.exe和B.exe
当B.exe发生未知异常时,如何在A.exe里面知道B.exe发生异常了,并且可以在A.exe里获取B.exe的异常信息?

作者: hbzhlt   发布时间: 2011-12-06

A中实时跟B通信,否则你想要检测什么异常?

作者: bdmh   发布时间: 2011-12-06

try……catch……捕捉异常,然后:
1.进程间通信http://blog.csdn.net/tanliyoung/article/details/1222186
2.共享文件

作者: nube163   发布时间: 2011-12-06

引用 1 楼 bdmh 的回复:
A中实时跟B通信,否则你想要检测什么异常?


因为不知道B里会发生什么样的未捕获异常,导致弹出.Net的错误对话框。
就是想在A里监控B里没有捕获到的异常


备考:
  B是一套成形的软件系统,但是可能其中某些程序写得不好,所以会有未知异常发生。
现在就是想开发一个A程序,来监控上述未知异常,然后收集异常信息。

作者: hbzhlt   发布时间: 2011-12-06

引用 2 楼 nube163 的回复:
try……catch……捕捉异常,然后:
1.进程间通信http://blog.csdn.net/tanliyoung/article/details/1222186
2.共享文件


前提条件,B程序是不能修改的,所以try{}catch{}不可行。

作者: hbzhlt   发布时间: 2011-12-06

B中出现异常写到日志中

A可以监控指定目录(日后存储的目录) 当有新日志的时候 就做 相应处理

作者: Sandy945   发布时间: 2011-12-06

引用 5 楼 sandy945 的回复:
B中出现异常写到日志中

A可以监控指定目录(日后存储的目录) 当有新日志的时候 就做 相应处理


你好,B是不可修改的程序。有没有别的办法?

作者: hbzhlt   发布时间: 2011-12-06

在B中try catch捕获异常后,
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
  Info.FileName = "A.exe";//程序名
  Info.Arguments = “information”;//启动参数
启动一个线程去执行Info,
调用A程序,将捕获的异常传递过去,意思是说,B是主动,而你要用来监控的A程序是被动执行的。

作者: wangdoublejia   发布时间: 2011-12-06

引用 6 楼 hbzhlt 的回复:
引用 5 楼 sandy945 的回复:
B中出现异常写到日志中

A可以监控指定目录(日后存储的目录) 当有新日志的时候 就做 相应处理


你好,B是不可修改的程序。有没有别的办法?

我不确定程序是否可以监控进程并记录错误信息.

作者: Sandy945   发布时间: 2011-12-06

恩,又学到东西了

作者: chenandczh   发布时间: 2011-12-06