日期:2014-05-18  浏览次数:20956 次

程序自动退出,没有抓到任何异常
C# code

Main(){
      AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionEventHandler);
      Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(AppThreadException);  
}


,以上两种异常事件都没有捕获到任何异常,程序运行过程中忽然就不见了,进程退出,没有任何地方调用过Application.Exit 或 Environment.Exit

有没有人遇到过这个情况,请各路高人给点意见!

------解决方案--------------------
记一下日志看看。
------解决方案--------------------
我这种项目在通讯量大的时候用后台线程跑,还没遇到崩溃情况
------解决方案--------------------
应该是代码的问题,上点你认为可能有问题的代码,或者你自己断点调试一下
------解决方案--------------------
探讨
谢谢yalan的回复,有没有高手会用WINDBG?WINDBG能不能找到异常出自哪儿?甚至精确到哪个动态库

------解决方案--------------------
有的时候,当代码运行到:
socket = tcp.AcceptSocket();
的时候,线程就会在这里停滞,因为要等待下一个连接请求。
但是,如果长时间没有请求的话,系统就会强行停止该线程
有时候会抛出异常,有的时候会使程序自动退出。


没有代码,也不知道分析的是否正确,建议你断点调试吧。力莫能助了,祝你顺利。洗洗睡了呵呵
------解决方案--------------------
这种就是逐级加异常记录。

以前没有断点调试的时候怎么做呢
------解决方案--------------------
在多线程环境中,有一个线程抛出异常,常常会发生捕抓不到异常,但是会退出。这种一般是网络请求超时等错误。没有在请求的时候try catch
------解决方案--------------------

------解决方案--------------------
看一下日志
------解决方案--------------------
把你的程序拷贝到别人的电脑上运行试试,不排除是你系统的问题。

因为你说你的程序不定时退出,有时候一天都没事有时候刚启动就退出,你换个电脑试试吧
------解决方案--------------------
探讨

把你的程序拷贝到别人的电脑上运行试试,不排除是你系统的问题。

因为你说你的程序不定时退出,有时候一天都没事有时候刚启动就退出,你换个电脑试试吧

------解决方案--------------------
用WCF的时候也碰到过SOCKET连接数量过多可能引起无法捕获异常崩溃的问题,一直没解决。
------解决方案--------------------
有没有调用API或者C/C++的模块,异常机制不一样可能捕捉不到的
------解决方案--------------------
http://news.csdn.net/n/20061120/97787.html

http://www.cnblogs.com/chenjunbiao/archive/2008/09/22/1760195.html
------解决方案--------------------
try 没用好。
所有的顶层的事件必须用try
一些继续重写类必须用try
marsh.getlasterror试试看。
------解决方案--------------------
有没有调用C++或其它语言生成的DLL

原来我做的一个项目就是因为调用C++的DLL,而那个DLL里的函数堆栈与C#冲突,SO 经常 自动退出
------解决方案--------------------
我碰到的情况是在认为没有异常的地方出现了异常,结果导致应用程序退出
------解决方案--------------------
我也遇到了这个情况,在多线程里访问socket和数据库的操作,奇怪的是只是在一个客户那里有自动退出的2情况。而且平均每天1次,不定什么时候发生。系统空闲的时候也会发生。如果楼主解决了,请分享一下。