解决x64位 IIS 无法连接Access数据库的问题

转自http://blog.sina.com.cn/s/blog_67140b580100l6q6.html

Vista或2003 X64(iis6或iis7)其实带了Microsoft Jet4.0 OLE DB Provider,是可以连接Access数据库的。
不过带的只是32位,没有64位的而且貌似目前MS没再为这个提供64位的了,所以你的项目必须编译为32位程序才能调用32位的Microsoft Jet4.0 OLE DB Provider。 在 vs2008中,cpu列表选择:any cpu

错误类型:ADODB.Connection (0x800A0E7A) 未找到提供程序的解决方法

An error occurred on the server when processing the URL.Please contact the system administrator


方法一:数据源

64 位 OLEDB Provider for ODBC (MSDASQL)

http://www.microsoft.com/downloa ... 8-b9be-ca44d18b059b

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=000364db-5e8b-44a8-b9be-ca44d18b059b

使用:系统目录下\SysWOW64\odbcad32.exe 在这个工具上配置 数据源。

方法二:将iis6 运行32位

ASP.NET 2.0,32 位版本
要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作:
1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

也就是 cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。
ASP.NET 2.0,64 位版本
要运行 64 位版本的 ASP.NET 2.0,请按照以下步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令禁用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
3. 键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。
注意:ASP.NET 2.0 的内部版本可能随当前发行的内部版本的变化而变化。这些步骤适用于内部版本 2.0.40607。

附:MDAC 2.81 引导程序包

http://www.microsoft.com/downloa ... p;displaylang=zh-cn

PS微软病态,为什么就不出个 MDAC for x64的。
本文来源自羊城网 原文链接:http://www.gznf.net/forum/thread-73571-1-1.html

谨慎使用windows 2003 64位版
http://bbs.coolfax.net/showtopic.aspx?topicid=260&forumpage=1&onlyauthor=1

IIS7设置注意事项及windows 2008 IA64位下无法链接Access的解决办法。

以上方法已测试,绝对可用。

你可能感兴趣的:(Access)