强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan
【前言】
在小编的上篇博文《SCPPO:网站发布中的问题锦集—手动发布网站》中卖了个关子—遇到的问题(4)—部署过程中引用DLL与服务器不一致问题解决。当然在网站发布出问题,导致问题的原因有很多种(引用DLL版本问题只是其中的一种),需要发布人员去判断和解决和验证,今天小编就为大家分享一下,自己一次发布遇问题后解决问题的经历。
【整体过程】
一.问题描述:
1.绪论:由于发布项目的同事请假,我做的功能又需急着测试,和发布的同事沟通后由我来代替他进行项目发布;
2.在本地上down下最新代码测试修改的功能没问题;
3.在本地发布将bin中的七个dll文件(自己修改的功能没有涉及到界面)发布到服务器的项目中;并对新修改功能进行测试没问题;
4.测试人员发现报表相关的功能(不是自己新发布中修改的功能)时候报错如下:
二.问题排查:
1.在本地启动后访问报表相关的功能可看见报错详细信息如下(通过服务器本身浏览器访问也可看到报错的详细信息):
2.猜测:根据报错信息查看,ReportViewer的版本问题
3.ReportViewer的版本对比(给负责发布这个项目的同事要下ReportViewer的版本【服务器上版本】和自己的版本进行对比):
4.结论:验证了猜测1中的猜测。接下来再次发布在服务器上部署进一步的确认。
三.解决方案:
1.替换ReportViewer版本:
2.重新在本地发布(确认在这期间没有其他人发布过网站,也确保与上次发布相比控件版本引用改变是唯一变动的地方),部署到服务器上;
3.测试报表项目,发现没有问题。
【总结】
1.出了问题后如何快速的排查出问题所在并能快速解决问题是一种需要培养的能力,尤其是在线上部署系统更是如此。
2.问题排查的整体思路其实比解决问题本身更重要,因为其不仅仅在网站发布时有效,而是放之四海而皆准。
3.问题是成长的阶梯,在出了问题尤其是类似于线上部系统这种需要快速解决的问题对一个人的锻炼非常大。
4.网站发布之前对网站进行备份,万一出问题可以先恢复能用版本。