日期:2014-05-16  浏览次数:20902 次

c#写的后台程序莫名结束的原因?
本帖最后由 captainyanyan 于 2014-02-17 10:09:05 编辑
背景:
    c#写的程序,后台运行,没有界面。这个程序功能挺多,线程也多,有socket通信,打印,数据库操作等等杂七杂八的。客户那运行几个月后,发现一个问题:程序有时候(偶尔)莫名其妙的结束了。经过调查不是客户主动关闭的,又翻开代码发现都try catch了(或许不够仔细),线程内部外部都有try catch。而我这边问题一直没有重现!
   于是能力有限,想不到什么情况下还会崩溃退出,大家依照经验来说,还会哪方面的原因呢? 
------解决方案--------------------
做个运行日志,记录运行情况,看看运行到哪停止了
------解决方案--------------------
查看系统日志,如果报错的话,那里应该会有记载
------解决方案--------------------
运行一段时间后退出,多半是资源耗尽。
日志一定要写,可以每天一个文件。
------解决方案--------------------
只要在try catch里面记录日志, 如果不是经常报错的话日志文件也不会很大
可以分天或者时段记录一个日志
------解决方案--------------------
http://blog.csdn.net/duanzi_peng/article/details/9113611
------解决方案--------------------
引用:
Quote: 引用:

运行一段时间后退出,多半是资源耗尽。
日志一定要写,可以每天一个文件。

请问资源耗尽是指某些情况内存占用过高,我的程序被系统自动干掉了么?


唉,基本知识:一个进程所能使用的资源是有总量限制的,包括:内存,句柄,线程,socket, 数据库连接等各类资源,如果没有关闭旧的,新的就开不出来了。