华山之巅,摆平.NET――ASP.NET调试库损坏导致程序运行异常

        雨夜征服华山暂且不叙,单说次日清晨来到华山之巅南峰顶时,手机传来了同事的声音,服务器被重启,之后ASP.NET程序运行出现了异常,无法登录使用,具体原因不明,给服务器管理员打电话,未通。此时的心情夹杂细雨雾气,身处华山之巅,却也有点眩晕。
        拍过两张照,收起相机,定了定神。服务器一直运行的很好,自从出来游玩,也没有对其进行更新,问题应该不大,但又非常棘手。
       下南峰的路上,我仔细考虑了所有可能的原因,但不了解具体现象,无法定论,半路信号也是很弱。崎岖山路,到达西峰时,电话再次响起,蹲在“华山论剑”石碑旁,里面是服务器管理员断断续续的描述,从其叙述中我了解了基本情况:
        重新启动ASP.NET程序服务器之后,使用IE访问程序,登录时出现JS脚本错误,提示“Login未定义”(Login为登录操作使用的类型,确实存在于登录页面之中),之后没有反应。
        从莫名提示类型丢失看,该错误原因很可能是ASP.NET引擎运行异常,重启IIS服务器和应用程序服务器,故障依旧。
        猛然间,我想起了出发前2天在工作站机器上出现过同样的错误,定神搜索,嗯,有了。
        “删除ASP.NET程序bin目录下的所有PDB文件即可!”,似乎只有这根救命稻草。
        等下了西峰再次打电话询问,问题已经解决!不过,雨还在下。

原因分析:
        PDB文件是.NET程序用于侦错跟踪的源码映像库,保存了源码的所有调试信息,其配合DLL托管文件对出错代码的位置进行定位。PDB文件一旦损坏,.NET引擎便无法正确跟踪托管代码,会出现“组件访问被拒绝”等各种莫名奇妙的错误。
        另外,由于本文所述ASP.NET程序使用了AJAX技术,而损坏部分恰恰出现在异步模块,造成了JS脚本错误的另一种假象。

总结:
1、 出现问题,需定神,问清具体情况以分析原因。
2、 摔过的跟头要记着疼,注意平时积累,记录每一个曾经遇到的问题。
3、 对于他人的问题,需要倾心帮助,说不定之后你会遇到。
4、 山里打手机,要在高处,或者有基站的地方。

 

标签:
文章分类 FK Coding

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

点赞
如果您觉得很赞,我将非常乐意接受虚拟币的捐赠,以示您对我的肯定。

比特币钱包地址:
1PqpqA8FyH3NbfCrbcRd1YxQk3LEsSEYDV
莱特币钱包地址:
LRTdmovGGVEHCKWz7JdL9aiB7VZkuNycJf
站点勋章
网站统计