码迷,mamicode.com
首页 > Windows程序 > 详细

window窗体程序意外崩溃,EventType clr20r3错误的解决方法

时间:2014-11-04 14:43:10      阅读:461      评论:0      收藏:0      [点我收藏+]

标签:winform   style   http   io   color   ar   os   for   sp   

EventType clr20r3, P1 ggreadcard.exe, P2 1.0.0.0, P3 51d3d283, P4 zljy.common, P5 1.0.0.0, P6 4fc6c236, P7 31, P8 28, P9 system.nullreferenceexception, P10 NIL.
要怎么解决呢!解决问题的办法是先要找到问题的根源。

在开发winform程序时,用到多线程,在服务器部署后运行,老是自动关才程序,症状描述如下:

在Windows Server 2003操作系统上,运行.Net 2.0或者3.5的应用程序时,会发现没有任何反应,到系统的事件查看器里会发现类似EventType clr20r3 P1....P2...PN的错误提示。

很可能的原因就是:应用程序出现了异常,而.net没有或者无法捕捉该异常,所以导致出现如下情况:

1.程序自动关闭。

2.此时去任务管理器中会看到一个DW20.exe的进程,不久会自动消失

3.到事件查看器里面会发现类似EventType clr20r3 P1....P2...PN的错误提示。

 

 

解决方法一:.在config文件中<configuration>     <runtime>         <legacyUnhandledExceptionPolicy enabled="true" />     </runtime></configuration>这样,主程序遇到未捕获异常不会强制关闭,但为了程序的稳定性与安全性,应该找出抛异常的地方,将其修改。

解决方法二:

         用到UnhandledExceptionEventHandler事件,通过这个事件,我们可以截获未捕获异常,并进行处理。

这个事件的事件参数UnhandledExceptionEventArgs e, 有两个属性,一个是ExceptionObject,这个属性返回为截获异常的对象实例。还有一个属性是IsTerminating,这个属性告诉我们这个异常是否会导致应用终止。这里需要说明的是,对于.Net1.1  .Net2.0及以上,情况是不一样的,.Net1.1 只有在主线程中的未捕获异常才会终止应用程序,而.Net2.0及以上版本则是始终终止应用程序。

      在主窗体main下,加         

AppDomain.CurrentDomain.UnhandledException +=new UnhandledExceptionEventHandler(UnhandledExceptionEventHandler);

并编码UnhandledExceptionEventHandler事件,

        static void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e)

        {

            try

            {

                LogHelper.ErrorLog(e.ExceptionObject.ToString());//LogHelper是写日志的类,这里,可以直接写到文件里

            }

            catch

            {

            }

        }

    运行程序,异常捕获,找到了问题所在,对代码进行改写。

www.wonima.com 我尼玛世界上最好看的笑话图片网站

window窗体程序意外崩溃,EventType clr20r3错误的解决方法

标签:winform   style   http   io   color   ar   os   for   sp   

原文地址:http://www.cnblogs.com/xuxiaoshuan/p/4073497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!