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

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 我尼玛世界上最好看的笑话图片网站

时间: 2024-09-28 22:20:35

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

WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭

原文:WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭 在我们开发WCF项目的时候,常常会碰到一些莫名其妙的错误,有时候如果根据它的错误提示信息,一般很难定位到具体的问题所在,而由于WCF服务的特殊性,调试起来也不是那么方便,因此往往会花费不少时间来进行跟踪处理.本文介绍我在我在我的框架里面使用WCF服务的时候,出现的一个常见错误的处理方法,它的提示信息是:基础连接已经关闭: 连接被意外关闭.这种情况我碰到的有两种,一种是返回DataTable的时候出现的,一种是返回实体类

打开exls表格时报‘向程序发送命令是出现问题’的错误的解决方法

1.问题现象 打开表格文件时系统报如下错误 2.解决方法 1)按照如下方法找到excel选项,点击进入 2)找到'忽略使用动态数据交换(DDE)的其它应用程序(O)',去掉复选框种的勾,点击确定,重新打开exls文件就OK了

ORA-12560: TNS: 协议适配器错误的解决方法

造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个: 1.监听服务没有起起来.windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务. 2.database instance没有起起来.windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID. 3.注册表问题.regedit,然后进入HK

C语言中常见的内存错误与解决方法

常见的错误 关于内存的一些知识已在内存分配中提及,现记录与分享常见的内存错误与对策. 类型 1:内存未分配成功,却使用了它. 方   法:在使用之前检查指针是否为NULL. 1)当指针p是函数的参数时,在函数入口处用语句assert(p!=NULL)进行断言检查. 2)当使用malloc或new来申请内存时,应该用if(p != NULL)进行防错检查. 类型 2:引用了尚未初始化的指针 原   因:内存的缺省初始值究竟是什么并没有统一的标准,在使用之前都进行初始化. 1)没有初始化的观念. 2

Windows 7 64bit上安装Oracle Database 12c [INS-30131] 错误的解决方法

Windows 7 64bit上安装Oracle Database 12c,出现以下错误: 解决方法: 第一步:控制面板>所有控制面板项>管理工具>服务>SERVER  启动 第二步:控制面板>所有控制面板项>管理工具>计算机管理>系统工具>共享文件夹>共享   右键单击“共享”>新建共享> 点击“下一步”>   单击“浏览”> 选择"本地磁盘(C:)">确定   单击“下一步”:     单击“

飞鸽传书 bind() error=10048错误的解决方法

提示  bind() 错误=10048 原因:其他程序占用飞鸽的 2425 端口 比如:飞秋也是使用2425端口 解决:用netstat命令查看是哪个进程占用了该端口 格式:netstat -ano | find "2425" 结果:  UDP    0.0.0.0:2425     *:*        1716 最后的1716就是占用2425进程的进程ID,看看是什么,可以结束的直接结束该进程,再打开飞鸽就可以了. 关于netstat命令可以输入命令 netstat /? 查看更多

运维实战案例之“Argument list too long”错误与解决方法

作为一名运维人员来说,这个错误并不陌生,在执行rm.cp.mv等命令时,如果要操作的文件数很多,可能会使用通配符批量处理大量文件,这时就可能会出现"Argument list too long"这个问题了. 1.错误现象 这是一台Mysql数据库服务器,在系统中运行了很多定时任务,今天通过crontab命令又添加了一个计划任务,退出时发生了如下报错: #crontab -e 编辑完成后,保存退出,就出现下面如下图所示错误: 2.解决思路 根据上面报错的提示信息,基本判定是磁盘空间满了,

关于启动Visual Studio 2010 旗舰版的几个错误的解决方法。

关于启动Visual Studio 2010 旗舰版的几个错误的解决方法.亲测. 重做系统之后,今天是第一次打开Visual Studio 2010 旗舰版码代码,结果遇到几个弹出的对话框,现在与大家分享下错误和解决方法. 人品不好,首先遇到这个错误. Q1:未能正确加载“VSTS for Database Professionals Sql Server Data-tier Application" 包. A1:打开cmd,输入regsvr32 %windir%\system32\jscrip

执行游戏时出现0xc000007b错误的解决方法

如图,这个错误使无数玩家烦恼. 出现这个错误,可能是硬件的问题,也可能是软件的问题.可是,因为硬件引起该问题的概率非常小,而且除了更换硬件之外没有更好的解决方法,因此本文将具体介绍怎样通过软件解决此问题,这也是大家最关心的. 大致介绍一下这个错误是怎样发生的.这个错误的本意是提示内存错误,可是通常情况下并非内存存在问题,而是因为软件的问题产生了这个错误.到底是什么软件的问题呢?答案是DirectX,而且多数情况下是DirectX 9.0的问题. 或许大家会问了:我玩的游戏都有DirextX 11