昨晚刚到家就接到同事的电话,有客户打电话寻求帮助,他们使用的程序出现问题:主页无法打开,出现异常错误。由于我已经在家,只能让同事在现场看,我来找问题。于是就出现下面的对话。

我:iis正常运行吗?
同事:正常
我:那在iis里打开主页呢?
同事:也不行,但是错误信心变了,变成“Sql Server不存在或访问被拒绝”。
我:那你看看数据库服务器是不是有问题?
同事:不可能,我正在上面做数据清算呢。
我:那你在Web服务器上能连上数据库吗?
同事:可以。
我:那你看看程序的配置对不对,是不是服务器指向不对了?
同事:配置没有问题。


         这下把我给难住了,一切都是正常的,怎么会出现这样的问题呢?而且在打开主页的过程中,是没有访问数据库的操作的,即使有,也应该是通过WebService,不会把这样的错误信息直接反映在前端阿。就在我百思不得其解的时候,我听到电话里有人在说我们程序原先用的数据库服务器在完成迁移后,今天移走了。听到这句话,我眼前突然一亮,我们的程序在安装的时候曾经创建过ASPState库,并且只要使用程序,就应该会访问这个库,而且对这个库的操作是.Net环境自己控制的,不受我们的控制。这样的话,就可以解释为什么会出现“Sql Server不存在或访问被拒绝”的错误了。那为什么以前是好好的,为什么就在今天出错了呢?难道和被移走的数据库服务器有关系?于是,我让同事看打开Web服务器上Sql客户端网络实用工具,看看里面的别名设置情况。发现和数据库服务器别名相对应的机器是移走的那台机器,问题的原因找到了,解决起来就很容易了,修改地址后,再试一下程序,一切都正常了。
        问题虽然已经解决,不过却暴露出工作上还是有粗心的地方,值的引以为戒--“小处不得随便”阿