建立论坛过程中遇到的问题

    今天的工作是建立一个内部交流论坛。公司现有的论坛是购买的Discuz论坛,但是版本是较低的3.0版本。我接受这份工作的第一件任务就是进行论坛升级。前段时间升级了几个公司内部的论坛,升级到了3.9版本。

    今天的工作是新建一个论坛。我寻思着既然现有的论坛要升级,为什么我不将要新建的论坛建设为最高版本呢,这样以后不就不用升级了吗?于是我上Discuz官网论坛下载了最高版本的源代码。开始架设论坛。论坛建立好了,初步运行正常。因为公司有组织架构的概念,但是Discuz论坛本身不包含组织和部门的概念。于是我在数据库中的用户信息表中添加了一个部门信息的字段。然后修改源代码,在添加用户时多加一条部门的信息。因为Discuz论坛有它自己的模版机制,每次修改之后都要生成代码并生成模版。但是,问题出现了!我生成源代码后网站黄页了!我急啊!将bin文件中的DLL文件全都还原为初始的文件,论坛又可以正常运行了。可是,我要修改源代码,添加插入部门信息的功能,怎么办呢?我查看生成源代码后网站黄页的原因,提示/aspx/1/login.aspx文价中的"isopenconnect“没有定义。于是我找到login.aspx对应的静态页面中"isopenconnect”所在的位置,发现是因为论坛升级到3.9后有一个云平台的功能,即可绑定QQ。但是我的论坛并没有启用云平台的功能啊,为什么会有这个东西呢?不管三七二十一,既然没用到,那就注释掉好了。于是我把静态页中这部分的代码注释掉了,继续生成。额滴神啊!又有问题,这次报的是Discuz.Forum类库中的一个方法没定义。我都不知道这个类是用来干什么的,整个解决方案都找不到这个方法。但是既然没有这个方法,怎么又有它的引用呢?也不是我自己写的呀,是系统自动生成的呀。我郁闷。又将DLL文件还原到原始。还是可以正常访问。我想,是不是生成的时候覆盖了它原有的DLL文件导致论坛黄页的呀?可是,我修改的东西和报的那些错都不搭边呀!我无助了,找不到问题的原因,怎么解决问题呢!我又开始思考了,既然刚下载下来的代码运行都有问题,那是不是源代码本身就有问题呢?于是,我复制了一份公司现有的论坛的源代码,架设了一套测试环境。然后将测试论坛升级到3.9(因为公司现有的论坛都是3.0版本的)。还是能够通过代码生成,但是生成源代码后访问论坛就黄页。

    我真没招了。打电话给Discuz论坛的技术支持,几经波折,终于打通了电话。人家告诉我,Discuz论坛现在已经升级到Discuz!X版本了,不做NT版本的技术支持了!晴天霹雳啊,我最后的依靠都没了!看看时间,一天就要过去了,今天的任务还都没完成呢。怎么办?就在这个时候,我亲爱的的导师,终于看不下去了。他来到我身边,帮我分析了一下。最终确定,如果不是源代码有问题,那就是我的机器有问题。于是他打算在自己的机器上架构论坛,如果在他的机器上没有问题的话,那就是我的机器有问题;如果他的机器上也有问题的话,那就可能是源代码的问题了。我告诉他我的源代码是在Discuz的官网论坛上下载的,他上官网论坛看了看,发现目前Discuz!NT系列的最高版本是3.6,3.9版本还是测试版。测试版本身就有很多问题。于是他下载了一套Discuz!NT3.6版本的源代码在机器上建立了一个论坛,结果没有问题。生成后访问论坛也不会黄页。到现在位置,答案基本可以确定为3.9版本的源代码有漏洞。我哭,我纠结了一天,结果是源代码出了问题。如果不是我的导师帮我找到这个问题,即使我调试到明天也找不到症结所在啊!截至找到问题,我总共花了7个小时来调试源代码。

    遇到今天的问题,我脑子一团浆糊,我要好好缕缕,总结总结经验。对于今天的事情,我找问题的方法不对,在今天的问题上,我的导师采用的是排除法。先看编程有没有问题,如果实在找不出问题所在,就要质疑源代码本身的问题。如果源代码本身也没问题,那有可能是机器配置的问题。总之一句话,问题总能解决,关键是找到问题。我所缺乏的,是找到问题的方法。并且,遇到问题的时候不能着急,要捋清思路,想清楚出现问题的原因。

你可能感兴趣的:(问题)