如何知道一个.net应用程序是被谁Kill掉的!? 一个简单的办法:A只去启动B,不要KILL它.当然每次启动之前判断一下是否已经启动了,已经启动了就不要再开一个了.这样如果B还是会被KILL的话,要么是第三方KILL的,要么是B本身有BUG,自己关闭了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 To:1#,2# B骨子里其实是个service 并且这个应用已经很有年头了,不可以随便做大的修改To:3# 我描述bug现象有遗漏,A登录模块提供了一个 public static 方法用通过process.kill来关闭B应用, 并且我能拿到的代码中只有登录模块在调用. 但是,A应用里有1882个dll(.net),未统计的还有vb6,c++....并且不大可能拿到全部的源代码 曾做过类似方案,在Kil时打log,被无情的否定了有没有办法跟踪一个process,知道它是被谁kill掉的!? 就是说,你A程序中可能有无数个模块都去操作B?设计的完全不合理啊.应该是只有1个模块去操作B,其他模块通过调用这个模块去操作B,而不是每个模块都去直接操作. 是这个理,理论上不应该.但是不敢排除!这东西有年头了,经手的人多啊!!即使是现在也同时有几十人在对应它的bug,或增加新功能 办法是有的,要挂应用程序全局钩子,在进程处理中拦截TerminateProcess 代码并不多参考http://www.blogjava.net/baicker/archive/2007/05/31/121108.html但是单纯用.Net似乎是挂不上这种全局钩子的如果在A应用中加一个守护功能,当发现B意外结束之后,马上又开启一个,这样岂不更简单? 是这个理,理论上不应该.但是不敢排除!这东西有年头了,经手的人多啊!!即使是现在也同时有几十人在对应它的bug,或增加新功能我这边的对应流程是,上面发依赖过来.我们找原因,找到后做详细设计反馈回去,上面收到后评价,如果没问题,才可以后续的工作.原因必须要找到,不可以绕过...(上面发依赖的人变态啊!总是为什么啊为什么不明白啊不明白!)现在我根本没办法再现bug(这事肯定是个案,现场也在国外),c++ 是七窍通了六窍..... Quote: 引用 7 楼 dongxinxi 的回复:办法是有的,要挂应用程序全局钩子,在进程处理中拦截TerminateProcess 代码并不多参考http://www.blogjava.net/baicker/archive/2007/05/31/121108.html但是单纯用.Net似乎是挂不上这种全局钩子的我这边的对应流程是,上面发依赖过来.我们找原因,找到后做详细设计反馈回去,上面收到后评价,如果没问题,才可以后续的工作.原因必须要找到,不可以绕过...(上面发依赖的人变态啊!总是为什么啊为什么不明白啊不明白!)现在我根本没办法再现bug(这事肯定是个案,现场也在国外),c++ 是七窍通了六窍..... 个人觉得啊,A程序调用B程序中的方法之前,先判断是否存在B的实例,如果B已经被关闭,那就调用Process.start打开B之后再调用,这样就不会有啥bug。 这可以是解决bug一种方法,但是解决之前必须要找到产生bug的原因! 我用这种办法插入数据,为什么会出现重复的插入,插入时间相同或者相距十几毫秒 winfrom中的添加,删除,管理用户 关于SQL语句 DataGridView数据复制问题 怎样在C#中产生业务的流水号 怎么让form不失去焦点? c# remoting如可限制并发用户数 求助一个正则表达式 当一个字段为空的时候显示指定的几个字,该如何写 使用用户控件的问题 TCP通信 加密 和 客户端校验 sql clr中如何填充数据?
B骨子里其实是个service
并且这个应用已经很有年头了,不可以随便做大的修改
To:3#
我描述bug现象有遗漏,A登录模块提供了一个 public static 方法用通过process.kill来关闭B应用,
并且我能拿到的代码中只有登录模块在调用.
但是,A应用里有1882个dll(.net),未统计的还有vb6,c++....并且不大可能拿到全部的源代码
曾做过类似方案,在Kil时打log,被无情的否定了有没有办法跟踪一个process,知道它是被谁kill掉的!?
设计的完全不合理啊.
应该是只有1个模块去操作B,其他模块通过调用这个模块去操作B,而不是每个模块都去直接操作.
是这个理,理论上不应该.但是不敢排除!这东西有年头了,经手的人多啊!!即使是现在也同时有几十人在对应它的bug,或增加新功能
参考http://www.blogjava.net/baicker/archive/2007/05/31/121108.html但是单纯用.Net似乎是挂不上这种全局钩子的
如果在A应用中加一个守护功能,当发现B意外结束之后,马上又开启一个,这样岂不更简单?
是这个理,理论上不应该.但是不敢排除!这东西有年头了,经手的人多啊!!即使是现在也同时有几十人在对应它的bug,或增加新功能
我这边的对应流程是,上面发依赖过来.我们找原因,找到后做详细设计反馈回去,上面收到后评价,如果没问题,才可以后续的工作.
原因必须要找到,不可以绕过...(上面发依赖的人变态啊!总是为什么啊为什么不明白啊不明白!)
现在我根本没办法再现bug(这事肯定是个案,现场也在国外),c++ 是七窍通了六窍.....