- 1 论坛
- 1.1 论坛转移到新服务器无法上传附件
- 2 网站
在windows 2012 R2 64位上部署ASP网站-真正源创文章
- 2017-03-28 22:50:03
- zstmtony
- 9216
- 最后编辑:zstmtony 于 2017-03-29 21:08:14
今天将一个客户的asp网站从旧的windows Server 2003+iis6转移 到Windows Server 2012 R2 iis 8.5 遇到不少问题
Microsoft OLE DB Provider for ODBC Drivers 错误 "80004005"
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
/gard.asp,行 7
1.首先是默认文档第一个是 html, 将.asp 提到前面即可
2.网站数据库目录和有些上传目录没有权限,在Windows设置 Iisuser匿名用户有相关权限即可
数据库所在目录没有设置读写权限,一般要给来宾帐号权限。
3.打开 index.asp 首页,还是提示出错
错误号为 500 ,您查找的资源存在问题,因而无法显示
创建一个新的asp文件,里面只有一句代码 <% response.write "OK" %>
执行正常,说明ASP正常
5.再打开IIS中此网站中asp的设置中的 以下图的3项设置为True (记得 调试好后一定要关闭它,以免被黑客利用)
并启用父路径(默认是开的)
6. 打开index.asp 还是提示500错误,没有详细的错误信息
7. 再打开 错误页
找到 500 这个错误
将 错误响应 改为 详细错误
保存即可
8. 这时再打开index.asp ,就会显示 详细的错误信息了
提示具体 的inc/conn.asp 的第7行出错
conn.connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("..\db\db.mdb")
conn.open()
连接Access数据库"未发现数据源名称并且未指定默认驱动程序"的解决办法
9. 怀疑是否Access驱动没有安装 (可能32位,也可能64位)
64位Windows系统连接Access数据库,程序中可能需要修改Access数据库连接:
32位:strConn="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("inc/db.asp")
64位:strConn="DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & Server.MapPath("inc/db.asp")
修改后仍报错则进入“控制面板”-》“管理工具”-》“数据源(ODBC)”查看系统是否存在Access驱动
若不存在则需要安装Microsoft Access驱动程序(下载微软的驱动重新安装一下:)
官方:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13255
32位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/AccessDatabaseEngine.exe
64位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/AccessDatabaseEngine_X64.exe
10.发现还不行,后来发现原来是
64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。
所以,程序里面的链接字符串不能正常工作。需要修改下IIS的工作环境,改成32位的,在IIS的管理界面中。
问题原因:
64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。
所以,程序里面的链接字符串不能正常工作。需要修改下IIS的工作环境,改成32位的,在IIS的管理界面中。
解决方法:
进入应用程序池中的默认应用程序池 在常规选项中的32位方式启用就可以了:
开启32位应用程序池设为True即可
到此完全解决了
2017/03/29 补充
如果 是使用 护卫神主机系统,在网站管理后台,还要勾选上 启动32位应用程序池,否则护卫神的配置会覆盖IIS的配置