Asp常见的连接access数据库的错误
最近我在帮一个网友调试程序时,发现了一个令人郁闷的问题,就是ASP无法连接Access数据库。通过在网上搜索资料,终于解决了这个问题,今天发上来和大家一起分享。
在本地IIS运行页面,错误提示如下:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x914 Thread 0xb44 DBC0x1f50064 Jet'。
/practice/config/db.asp, 第 5 行
我看了一下,db.asp是数据库连接文件。再仔细看第5行,其实是连接数据库的字符串,我和以前的数据库连接文件对比了一下,并没有语法错误。于是,我在网上搜了许多资料,尝试了以下方法后,问题终于得以解决了。
在执行以下操作前最好先暂停IIS,执行完后重启一下IIS,这样更改才会生效。
1、检查硬盘格式是否为NTFS。如果是的话,最好把网站文件夹转移到FAT32格式的硬盘。或者备份好文件,右键格式化硬盘。
2、打开IIS-默认网站-属性-目录安全性:
匿名访问和身份验证控制-编辑,选中“匿名访问”、“允许IIS控制密码”,最好点确定。
3、打开C:\WINDOWS文件夹,找到temp文件夹,右键-属性-安全,添加一个“everyone”用户,选中“完全控制”。
4、桌面右击“我的电脑”-“管理”-“本地用户和组”
Guest-属性,去掉“帐户已停用”
IUSR_你的计算机名-设置密码,如:abc123
IWAM_你的计算机名-设置密码,如:abc123
出现这个问题,总的来说是权限、系统、硬盘格式等方面的问题。因为我让朋友在他们的机子上测试没问题,我家里的机子也可以。不同机子的系统不一 样,而我公司的机子和网友的系统一样,都是雨林木风GHOST XP SP3 纯净版。看来以后做网站的最好用标准版操作系统,而不能用这些GHOST精减过的系统了。
错误类型:
MicrosoftOLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
解决方案:
当你使用ASP连接数据库时可能会出现这种情况,为什么呢?因为您数据库文件所在的目录权限对特定的用户没有开启足够的权限,你只能进行只读访问,一般出现这种情况的文件系统为NTFS,那怎么解决呢?
首先,你找到数据库所在目录,也可以是上层目录,然后设置文件夹安全 属性,最简单的是把everyone的权限设置成完全即可,那对于这个问题,应该使哪个对象的权限设置成完全呢?答案是 IUSER_您的机器名 。这个是哪个对象?这个是Internet来宾用户,有兴趣的读者可以查阅相关资料。至此,问题解决,你可以再运行一下看看是否解决了问题。
附:对于WindowsXP的用户,也许你会茫然于更改文件夹的安全属性。因为在默认情况下,Windows XP使用了简单文件共享方法,所以,当你点属性 的时候是看不到 安全 选项卡的。具体操作如下:
我的电脑-->文件夹选项-->查看-->取消 使用简单文件共享(推荐) 的勾选 即可。你查看一下你要更改文件夹的属性,是不是多了一个 安全 选项卡呢?
找到everyone
设置好后:
如图: