论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Asp.net教程
Tag:静态页面,treeview,gridview,repeater,dataset,sqldatareader,ado.net,上传,三层,ajax,xml,留言本,新闻发布,商城,注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,触发器,socket,form认证,登录,视频教程

一个极有可能引发ExecutionEngineException的情况

文章类别:Asp.net | 发表日期:2008-10-5 22:09:36

关于ExecuteEngineException,在.net framework SDK中有这样的描述:

“执行引擎错误是致命错误,决不应该发生。此类错误主要是在执行引擎被破坏或丢失数据时发生的。系统会随时引发此异常。在可能的情况下,系统将引发比 ExecutionEngineException 异常能提供更多信息的异常。

应用程序不应引发 ExecutionEngineException。”

从这个描述可以看出,ExecutionEngineException这个异常在正常的程序中应当是不可能发生的,致命错误嘛。然而我今天却就与这个异常来了个多次碰头。

具体情况大致是这样的:一个具有查看器(Viewer)功能的COM控件,在.net中使用。这个Viewer有一个特性,在当前可视区域发生某些变化时,将会触发两个事件,而在更特定的情况下,这两个事件触发的时间差可能非常之小,几乎是同时发生。此时外层的.net程序引发ExecutionEngineException异常的可能性就变得非常之大,基本上每次操作都至少遇上一次,当然也只能遇上一次,因为一遇上就差不多Crash了。

应该还是在.net与COM交互时发生的问题,虽然不清楚具体过程,也可以大概猜想一下:当第一个事件发生的时候,.net开始对它进行处理,没等处理完毕,第二个事件又发生了,异常也就诞生了。

知道原因就好办。加入一个事件挂起机制,使得任意两个事件的触发时间间隔不会太小,避免两个事件几乎同时触发的情况再次发生。果然,一试之下再也没有出现这个异常了。如果有遇上类似现象的,不妨用这个思路试一下。

PS,这里我使用的环境是.net framework 1.1,目前尚不知在.net framework 2.0下是否有同样的现象。


http://www.cnblogs.com/sunwaywei/archive/2006/08/21/482674.html

视频教程列表
文章教程搜索
 
Asp.net推荐教程
Asp.net热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058