C# 如何找出进程被终止的原因和来源?

C# 如何找出进程被终止的原因和来源?,c#,wcf,C#,Wcf,我有一个简单的.NET4.0WCF服务器,我怀疑它正在被系统中的其他进程杀死。通常在dispose中,我会记录服务器正在关闭,但日志中没有任何内容,因此我认为进程正在被终止 我在win7事件查看器中没有看到任何内容 我是否可以做些什么来检测进程何时以及为何被终止(以及被谁终止)?也许需要一些低级别的操作系统监控 编辑: 应该添加:其他一些进程可以通过启动该进程来初始化服务器。我无法控制另一个进程,而且我被告知另一个进程不会发出kill Edit2:当进程被终止/突然退出时,是否有方法进行“紧急日

我有一个简单的.NET4.0WCF服务器,我怀疑它正在被系统中的其他进程杀死。通常在dispose中,我会记录服务器正在关闭,但日志中没有任何内容,因此我认为进程正在被终止

我在win7事件查看器中没有看到任何内容

我是否可以做些什么来检测进程何时以及为何被终止(以及被谁终止)?也许需要一些低级别的操作系统监控

编辑: 应该添加:其他一些进程可以通过启动该进程来初始化服务器。我无法控制另一个进程,而且我被告知另一个进程不会发出kill

Edit2:当进程被终止/突然退出时,是否有方法进行“紧急日志记录”?AppDomain.ProcessExit毕竟不能保证被调用,所以有没有其他方法来实现类似的功能

Edit3:也读了这篇文章,但没什么帮助


奇怪的是,CLR/OS无法获取此信息。我打赌这是调试的重要信息

你试过了吗,AppDomain.UnhandledException,是的,我试过了。未引发任何异常。请检查应用程序是否消耗了意外内存?大多数情况下,错误都记录在event Vewer中,您应该确保正确地检查了错误,也检查了错误。服务器保持在50-75MB左右,峰值为100MB。添加了一些附加信息。感谢您的建议:)您可以尝试实现约束执行区域(CER)以利用.Net中的可靠性功能-快速谷歌搜索发现: