Trouble Shooting Principle No.1
前几天写了自己的第一个从应用程序连接数据库的小程序。数据库DBMS用的是Microsoft SQL Server 2000,连接工具是.NET下的ADO.NET,应用程序用C#编写,操作系统是Windows 2003 SP1。
最初是应用程序连接本地数据库(连接字符串中server=(local)),使用SQL Server的Windows帐户认证(连接字符串中Trusted_connection=True),一切正常。昨天晚上心血来潮,心想既然DBMS支持网络访问,为什么不把应用程序放到一台局域网的机器上来远程连接数据库呢?于是修改了连接字符串中的server,使它指向我的机器,然后在SQL Server中为远程连接新建了一个连接帐号,再在连接字符串中填入相应的登陆名和密码。一切设置妥当后,在本机运行通过,但是放到旁边一台机器上死活不能连接数据库 ,提示什么认证不能通过的异常。奇怪了,我的SQL Server明明打开了远程访问而且也新建了一个用于远程连接的帐号啊。折腾了半天,又翻书又查SQL Server的帮助文档,还是不能解决这个问题。到底是我自己的数据库配置有误还是在应用程序中连接字符串没有设对呢?经同学提示,把数据库放到他的机器上,然后应用程序从我的机器去远程连接。哈,这次居然通过了!看来应用程序中的设置是正确的,问题出在我自己的SQL Server的配置上。但是我看了看两边的设置都没有什么差别呀。又陷入了迷茫。
想到SQL Server自身提供了远程连接的功能,测试发现,我的SQL Server中可以看到他的,但是他的却死活连不上我的,而且我那里面有个名字乱七八糟数据库实例。难道跟操作系统有关?“打补丁了吗?”另外一个同学一语惊醒梦中人。对呀,以前安装SQL Server的时候就看见过提示要求打上SP3(Service Pack)的补丁,后来不知怎么的就忘记了。真是笨啊,这么基本的原则都给忽略了!Windows 2003在SQL Server 2000之后推出的, 而且我用的是企业服务器版,在安全性上要求更加严格;未打补丁的SQL Server 2000出现无法连接的错误也就不那么匪夷所思了。
赶紧上微软的官方网站,忍受着蜗牛般的速度把最新的SP4补丁下载下来,安装,重起计算机,运行测试,BINGO!通过!
总结昨晚的教训,遇到软件兼容问题的时候,首先想到的应该是冲突的软件是否打上了最新的补丁。如果一开始就遵循这个原则的话,就不至于浪费大半个晚上还把原本好好的心情搭上去了。
Trouble Shooting Principle No.1------Get patched with Service Pack!
Labels: Computer Technology

1 Comments:
嗯,不错,计算机就是这么个衰样,多"打打"就好了!多做测试,分析原因。不过我是经常想得到,却做不到啊!
呵呵,要当计算机的杀手,将所有的问题都以最帅的方法把他们干掉!不留任何痕迹!哈哈!
5:28 AM
Post a Comment
<< Home