阿不

潜水

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  212 随笔 :: 0 文章 :: 3073 评论 :: 75 引用

asp.net 2.0的问题确实还真不少,程序在部署状态下的运行情况还真的不是很乐观,问题一个接一个的出现。也不知道是不是目前基于asp.net 2.0的程序是不是还不多的原因(如果有的话可能大部分是从原来的1.1升级上来的),这段时间遇到的问题大部分都无法从google上得到直接的解决办法。不过通过分析总能得到一个理想的方案。不过下面的这个问题不知道能不能被定性为.NET 2.0的一个BUG。异常描述信息是这样的:

异常信息:
   异常类型: System.InvalidOperationException
   异常消息: DataTable 内部索引已损坏:“4”。

堆栈跟踪:    在 System.Data.RBTree`1.GetNewNode(K key)
  在 System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Int32 position, Boolean fireEvent, Exception& deferredException)
  在 System.Data.DataTable.InsertRow(DataRow row, Int32 proposedID, Int32 pos, Boolean fireEvent)
  在 System.Data.DataRowCollection.Add(DataRow row)
  在 SoF.DaoServices.Products.ProductDataObject..ctor() 位置 E:\Projects\Gk-Platform\Code\SoF.DaoServices\Products\ProductDataObject.cs:行号 290
  在 CreateImplementation(Object[] ) ...

一看问题就出现在DataTable上,很多人都不推荐使用DataTable等ADO.NET数据对象的,而是使用更加OO的数据类和数据集合。所以它们肯定是不会出现如上的错误的。但毕竟是使用.NET,不使用ADO.NET数据对象似乎有点说不过去。所以为了更好的利用自定义数据类和ADO.NET数据对象的各自优点,便于其相互转换。我使用了一种折中的设计方法,将它们紧密的关联在一起。

什么时候会出现这个异常?在开发阶段从来就没有出现过这个异常,程序部署后的一段时间内也不会出现。异常出现的前一段时间,整个站点还能正常访问,过一段时间就都不能访问了。关掉w3wp进程,重启站点,问题暂时解决,但是一段时间又复发了。前几天有试着重装.NET Framework后,问题不再出现了,还以为问题就此结束了,没想到.......

根据以上的信息,在网上搜得Exception: DataTable internal index is corrupted: '5'. on .,似乎这是一个很相似的异常提示,而这个异常是一个已提交的BUG(Funny one, DataTable internal index is corrupted),看似这也是一样同样的BUG。

posted on 2006-10-17 15:03  阿不  阅读(4566)  评论(11编辑  收藏