asp环境mdb数据库出错80004005/0x3bcab7c/“不能使用 ”;文件已在使用中”的解决思路之一

昨天一个朋友的服务器上,有一个企业网站突然出现了问题,看报的错误似乎了MDBC有关系,是数据库连接读取有问题。看了看网上提供的很多方案,什么权限呀、注册vbscript、jsscript等等,考虑了下,朋友服务器应该不会有这问题,标准的安全配置,稳定运营了四五年了,除了常规升级和维护外,应该不会存在这样的低级错误。那问题在哪里呢?

比如下面这个说明:

ODBC访问Access时出现无法访问注册表关键字的错误 错误信息为: Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005’ [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 ‘Temporary (volatile) Jet DSN for process 0x4ec Thread 0x81c DBC 0x22f3544 Jet’。 这是因为Windows2000 SP2以后的新bug造成的。也许微软不喜欢ODBC了,所以出此下策。正确的方法是使用OLEDB来连接Access。连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件名

上述中说到bug的问题,这个windows sp2算是比较早的事了,之后更新了很多补丁,这个bug应该不存在。即使换了这样的连接方式,问题还是依旧,还是出现“80004005”。但这时虽然出现这个错误,错误提示又有了新的变化,跟着提示的还有“不能使用 ”;文件已在使用中”,这个真是稀奇了?按道理说,如此深夜,应该只有我一个人访问这个企业站才是。

无意中,切换到空间管理平台,查看一下空间的管理权限等信息,其中空间管理平台有功能,可以查看空间的使用容易、CPU占用等信息,突然发现空间容量是满格的红色状态,空间容量使用完了。原来如此呀,NTFS的磁盘容易权限控制还是比较严格的,空间容量使用完以后,对于空间的写入就被限制了,数据库在读取或写入时,都要有缓存文件生成,如果容量满了写入被限,那这个文件的生成就受影响了。知道原因了,就好办了。清理了一下备份文件,再访问网站,故障消失。

看来,解决这些问题,还是要从底层基础开始,一点一点细致的检查为好。不要一开始就怀疑到服务器的环境配置上去,说不定无目的的调整,会调整出更大的故障出来。