DB Connection failure?

之前就见到很多人在使用LBS的时候出现过DB Connection failure的错误,没想到我今天也给遇到了。昨天晚上睡前给服务器进行了一下磁盘清理,今天上班后因为手上事情比较多,也没去管网站的事,到下午四点左右终于闲了下来,习惯性的打开了my Blog,结果发现无法正常访问了,提示:DB Connection failure。心里第一感觉不会是网站被人侵入了吧,马上远程登陆服务器,检查文件及日志记录均正常,这才稍微松了口气。接着检查_common.asp文件及数据库目录权限,也都正常…..这还真是怪事了,莫非又是我rpwt?

捣鼓了一通问题还是没有得到解决,于是干脆就重头再来,在IIS控制台中删除站点再新建一个,连文件夹也重新指定并设好相应权限,再次访问,故障依旧,晕倒….. [30]

这下彻底没辙了,只好去网上查找办法,找到这么一段话:

Microsoft JET Database Engine (0x80004005)和DB Connection failure是一个错误,只是WEB程序的数据库连接里写的有些不一样,因为是NTFS分区,所以赋予了WEB程序所在分区Everyone组写入权限,这样ASP才可以把数据写进数据库.实验一下,还是不行,转到系统盘的WINDOWS文件夹,找TEMP文件夹,发现TEMP文件夹被改成TEMPEMPTEMP这个名字了,改回来,添加一个Everyone组并赋予写入权限.在实验,打开了.但是有一个框架还是出现了Microsoft JET Database Engine (0x80004005)错误,找到WEB的数据库连接代码,把conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath,修改成conn.open "provider=microsoft.jet.oledb.4.0;data source=" & dbpath,F5一下,问题解决.

现在说一下Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0xd84 Thread 0x420 DBC 0x2a4c1e4 Jet'这个问题.这个问题的出现是TEMP文件夹名字不对或者权限不对并且ODBC有问题才会出现,所以修改TEMP文件夹的名字和权限,改变数据库的连接方式就可以解决了.

原文见此

突然想到昨天晚上清理垃圾的时候发现windows目录下的temp中有7万多个类似于sess_2654c72d5adf77b33ebddee34071ffd9 0字节的文件,因为全选后删除半天没响应,一急之下就直接连temp目录一块给删除了,马上手动去重新建立一个temp目录并赋予Everyone权限,刷新后熟悉的首页终于出现在了我的眼前 [22]

绕了一大圈总算是把问题给解决了,不过让我疑惑的是为什么那些数据库连接时产生的临时文件无法自己消失呢 [27]