自己公司开发的一款软件,用的c#编的,在原来工控机上可以运行,换了一台工控机,每次打开软件的时候会有报错。
我在事件查看器里面看有一个.NET Runtime 2.0的报错,事件ID为5000。
重装了N遍系统—不行,装了N次.NET 2.0—不行,打补丁—不行,求大神解释啊!
以下是事件详情:
事件类型: 错误
事件来源: .NET Runtime 2.0 Error Reporting
事件种类: 无
事件 ID: 5000
日期: 2012-9-6
事件: 15:43:31
用户: N/A
计算机: RZKJ-20120906
描述:
EventType clr20r3, P1 laserwelderframe.exe, P2 1.0.0.0, P3 5045b2ac, P4 laserwelderframe, P5 1.0.0.0, P6 5045b2ac, P7 7e, P8 1d, P9 system.nullreferenceexception, P10 NIL.有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 63 00 6c 00 72 00 32 00 c.l.r.2.
0008: 30 00 72 00 33 00 2c 00 0.r.3.,.
0010: 20 00 6c 00 61 00 73 00 .l.a.s.
0018: 65 00 72 00 77 00 65 00 e.r.w.e.
0020: 6c 00 64 00 65 00 72 00 l.d.e.r.
0028: 66 00 72 00 61 00 6d 00 f.r.a.m.
0030: 65 00 2e 00 65 00 78 00 e...e.x.
0038: 65 00 2c 00 20 00 31 00 e.,. .1.
0040: 2e 00 30 00 2e 00 30 00 ..0...0.
0048: 2e 00 30 00 2c 00 20 00 ..0.,. .
0050: 35 00 30 00 34 00 35 00 5.0.4.5.
0058: 62 00 32 00 61 00 63 00 b.2.a.c.
0060: 2c 00 20 00 6c 00 61 00 ,. .l.a.
0068: 73 00 65 00 72 00 77 00 s.e.r.w.
0070: 65 00 6c 00 64 00 65 00 e.l.d.e.
0078: 72 00 66 00 72 00 61 00 r.f.r.a.
0080: 6d 00 65 00 2c 00 20 00 m.e.,. .
0088: 31 00 2e 00 30 00 2e 00 1...0...
0090: 30 00 2e 00 30 00 2c 00 0...0.,.
0098: 20 00 35 00 30 00 34 00 .5.0.4.
00a0: 35 00 62 00 32 00 61 00 5.b.2.a.
00a8: 63 00 2c 00 20 00 37 00 c.,. .7.
00b0: 65 00 2c 00 20 00 31 00 e.,. .1.
00b8: 64 00 2c 00 20 00 73 00 d.,. .s.
00c0: 79 00 73 00 74 00 65 00 y.s.t.e.
00c8: 6d 00 2e 00 6e 00 75 00 m...n.u.
00d0: 6c 00 6c 00 72 00 65 00 l.l.r.e.
00d8: 66 00 65 00 72 00 65 00 f.e.r.e.
00e0: 6e 00 63 00 65 00 65 00 n.c.e.e.
00e8: 78 00 63 00 65 00 70 00 x.c.e.p.
00f0: 74 00 69 00 6f 00 6e 00 t.i.o.n.
00f8: 20 00 4e 00 49 00 4c 00 .N.I.L.
0100: 0d 00 0a 00 ....   
今天晚上在线等答案啊!

解决方案 »

  1.   

    就看懂了 system.nullreferenceexception,空引用错误,你最好在每步操作加一个调试信息或记录日志,看看那里出错
      

  2.   

    用Try catch吗??具体怎么弄啊?
      

  3.   

    我觉得这问题要这么解决:
    <1>在软件每个开启的构造函数的地方,挂断点,甩编号MessageBox.Show("编号");出来,编号按照每个窗口的顺序,按照顺序从1,2,3,4,。开始,当你发现显示完4以后,显示不出5了,那么编号为5的构造函数里面肯定有Bug,你去单步。
    <2>除了构造函数以外,你有没开启其他线程,在其他线程的地方挂起,去追踪一下,没有用过debug类与trace类么?去看看
      

  4.   

    原来是什么版本的.NET,你确定是2.0吗?