最近在把电脑系统升级到windows10过程中,安装IIS一切正常,在调试asp网站过程中发现报错”Microsoft JET Database Engine 错误 '80004005'“,但是不调用数据库的程序代码正常打开,想可能是Fat32可能的原因,上网查相关材料后发现不是权限问题。
1、程序代码:
Dim databasePath,conn,connString
databasePath = "db.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connString = "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath( databasePath )
conn.Open connString
错误信息如下:
[url]http://127.0.0.1/conn.asp[/url]
Microsoft JET Database Engine 错误 '80004005'
未指定的错误
/conn.asp,行 6
2、初步测试
看看连接语句也没什么错误,不过第一反应还是换个写法:
程序代码:2
Dim databasePath,conn,connString
databasePath = "kphc.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connString = "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath( databasePath )
conn.Open connString
错误如下:
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x474 Thread 0x290 DBC 0x79d024 Jet'.
/conn2.asp,行 6
3、再分析
一般遇到这种问题,多数是因为mdb文件所在目录中IUSER_SERVENAME用户没写权限引起的,不过我朋友木鱼的服务器是我亲手配置的,权限设置没有问题。在IIS配置中加入写权限也是错误依旧.
检查C盘的权限,只有administrator和system用户,我突然想到数据库写入需要temp临时文件有写的权限,于是修改Windows/temp的权限,添加IUSR_的读写权限。问题立即解决。
另:网上有资料是关于静态网站改动态网站后ASP页面打不开的解决方法,操作如下:
重新把IIS注册一下,命令:aspnet_regiiis -i .注意,为什么要这样呢?因为IIS和.net框架安装是有先后顺序的.[具体操作:在运行了键入cmd,然后转到c盘,在键入cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322,最后键入aspnet_regiis -i