近期在对项目进行一些整理。
主要做了一些重构的工作,比如修改项目名字,修改变量,方法名,包名等等。
当我做完这些工作的时候,我重新对程序又进行了一些测试。
突然发现微信里的程序(我把微信支付提供的程序作了修改)JsApiPayPage.aspx运行之后出现空白。
真是特别奇怪。象是这样子。
第一次偿试:
于是,我第一步,去aspx.cs里去打断点,直接打到Page_loadr的第一行
运行之后,无论怎样,都不进断点。但是前一个aspx.cs页面都能进。(因为没有执行该页面类)
第二次偿试:
我把页面上的body里的代码全部去掉。
结果问题依旧。
第三次偿试:
我把整个页面所有内容都去掉,随便输入sdsdfklsd 这些字
结果正确显示这些内容。
第四次偿试:
于是我和另外一位开发高手,一起寻找问题。|
我们清理解决方案,再次运行,还是不行。
第五次偿试:
我们通过SVN把代码作对比,同时恢复回来。
然后再重新生成,结果还是不行。
第六次偿试:
我把项目放到复制给同事,他一打开,就发现,codebehind里的类,提示“出现重复的类”
至此找到问题的原因了。
最重要是他装了一个叫Resharper,才看出来。
出现这个问题的原因是。
之前就在bin里生成了一个老dll叫 shareShrk.DLL 里面有类(MobileWeb.JsApiPayPage)
后面我作项目整理把时,重新又新成了一个star.dll 里面也有类(MobileWeb.JsApiPayPage)
当程序是运行时,codebehind的,就发现有两个相同的类(冲突),最终导致出现空页面。
于是,删除掉老的DLL,运行正常。
以此为鉴。平时整理工作,也细心点,呵。