这个怪异的问题浪费我好几个小时的时间,也为了方便遇到以及即将遇到此怪异问题的朋友们,我觉得有必要在这里“立此存照”。
问题是这样的,在文档库新建一个Webpart Page或者在页面库新建一个页面,例如aaa.aspx,打开刚才这个新建的这个页面http://moss/Pages/test.aspx,这些都是最平常不过的了。在页面中我们经常会接受一些自己的参数来做自己的事情,OK,那我们加一个参数,URL变成这样http://moss/Pages/test.aspx?ID=2打开页面,这个时候问题就来了,你看到了什么?
呵呵,不过呢,这个错误的重现也是有条件的:
一是第一次加载的时候会出现,如果以前访问过了,那就不容易出现这个问题了,最简单的重现方法是重起IIS,然后打开这个带ID参数的页面;
二是这个参数ID的值是数字并且要大于1(我太伟大了,晕来~)。
出现这个问题的时候,我以为是我们页面上的控件或者webpart出现了问题,查来查去发现,把控件删除,webpart删除都一样的出现,后来干脆删除了这个页面,重新新建一个空页面,打开这么一个新建的页面,url后加上ID参数,又出现了这个问题,这个时候我意识到了错误可能是MOSS内部的一些机制造成的,果然随便打开一个页面加上ID参数都会出这样的问题。
为了搞懂这个问题是怎么产生的,我看了大量的LOG文件,结果没找到什么有用的信息,最后用Reflector查看源代码,查半天结果找到最关键的地方给我来个This item is obfuscated and can not be translated,直接被气晕。。。
最后我们将自己的参数名改掉来解决这个问题,比如http://moss/Pages/test.aspx?uid=2,惹不起咱躲得起嘛。
所以为了避免这样的问题,咱就尽量躲开这些烦人的事儿吧 :)
这段时间也没那么多时间去研究这个,如果哪位高手知道个中道理的,麻烦告知,多谢。