公共语言运行库检测到无效的程序。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidProgramException: 公共语言运行库检测到无效的程序。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[InvalidProgramException: 公共语言运行库检测到无效的程序。]
   newBigproject.WebForm1.Page_Load(Object sender, EventArgs e) +0
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +731程序较长,先不贴,有无人知道这样的错误是怎么回事?编译通过,运行就这样了,程序主要是将数据库的一些数据读到一个ArrayList里面,然后根据ArrayList.Count的值来对页面的一些控件的text属性赋值,在程序里有判断:
if(该ArrayList的count等于1)
  处理
else if(该ArrayList的count等于2)
   处理
....
else if(该ArrayList的count等于63)
  处理
结果到了63就出这个错误 如果我把63这个注释掉程序就正常了,好郁闷

解决方案 »

  1.   

    你有 63 个 else if ???太N了吧,你应该用 CASE 来做了
      

  2.   

    你可以跟踪else if(该ArrayList的count等于63)看看arraylist 的count值到底是多少,是不是产生了溢出。
    再说你为何用那么多else if语句,用开关语句不可以吗?
      

  3.   

    这种错误非常少见,是一个编译器错误,通常产生在将C#等托管语言生成为MSIL时候出的错,没有什么好的解决办法,现在可行的方法好像就是修改现在的程序结构,这样根据新的结构生成新的MSIL时不会出错就基本可以避免这个问题。你可以修改成case结构试一试。