http://blog.sina.com.cn/crino[订阅]
字体大小: 正文
Vista + IIS7 配置 ASP + Access & some errors(2009-01-11 00:26:27)
过程很痛苦,不多说,以下面这个错误开始:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'     
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎打不开文件'(未知的)'。它已经被别的用户以独占方式打开,或没有查看数据的权限。

我想这个错误对于使用Vista又想用ASP+Access的人来说就像每天早餐吃面包加牛奶一样司空见惯了(加个鸡蛋貌似也不错)。

有时会出现另外的错误,形如:
An error occurred on the server when processing the URLPlease contact the system administrator.

恭喜你,你引发了一个Error,至于这个Error是什么,我也不知道。
解决方案:
打开IIS7的ASP设置的“调试属性”选项,“将错误发送到浏览器”设为True,然后点右边的应用即可。

解决了该错误后,再次恭喜你,你有机会遇到第一个Error了。

第一个问题出现的情况只有两种,这里直接说权限的问题,首先按照网上能广泛找到的,设置父路径

给Vista安装目录C:\windows\ServiceProfiles\NetworkService\AppData\Local\Temp目录添加一个"Autheticated Users"的读写或完全控制权限。

到这里有很多人依然无法连接Access的数据库,这里是由于在NTFS分区下另需配置权限,如下:
  1. 文件夹选项->查看把文件的简单共享去掉 (2K/XP)

  2. 右击数据库目录, 在安全选项卡里, 加上IUSR_XX (XX为你的机器名) 的可修改权限. (也可直接加入 guests 组或 everyone 修改权限. 不推荐)

  3. 给 "系统盘:\windows\temp" 文件夹加上everyone的完全控制权限. (2003)


这样,理论上讲就可以连接成功。

这时又遇到了另一个错误:
Provider 错误 '80004005' 
未指定的错误


(看到那一串数字很容易让人联想这是不是某架失事飞机的编号)
Set conn=Server.CreateObject("ADODB.CONNECTION")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example.mdb")
第二行改写为
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("example.mdb")

很显然这里我们采用了另一种方式避过了这个问题。
一劳永逸的解决方案是:
Winkey + R
  regsvr32 jscript.dll (修复Java动态链接库) 
Winkey + R
  regsvr32 vbscript.dll (修复VB动态链接库) 
Winkey + R
  iisreset (重启IIS)

Congratulations!
OK,现在我们终于可以开始 DoubleA(ASP + Access)了。
加载中,请稍候...
  • 评论加载中,请稍候...

验证码:请点击后输入验证码  收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...