解决64位win7系统IIS7[ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序...

本文解决了在64位Windows7系统使用IIS7部署ASP系统,遇到Access数据库连接问题。通过将IIS工作环境调整为32位,解决了MicrosoftOLEDBProviderforODBCDrivers错误。详细步骤包括修改应用程序池设置以启用32位模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从网上下载了一个asp系统,数据库是Access类型的,运行环境为 64位Windows 7系统,IIS7,运行系统后,报如下错误:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
/bkconn.asp,行 6

解决办法:

64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。

所以,程序里面的链接字符串不能正常工作。需要修改下IIS的工作环境,改成32位的,在IIS的管理界面中。

把应用程序池中的默认应用程序池常规选项中的32位方式启用就可以了:

转载于:https://www.cnblogs.com/peipeigang/p/3597510.html

### 关于Microsoft OLE DB Provider for ODBC Drivers 错误 80004005 的解决方案 此错误通常表明应用程序无法找到指定的数据源名称(DSN),或者正确配置默认驱动程序。以下是可能导致该问题的原因以及相应的解决方法: #### 原因分析与解决措施 1. **数据源名称(DSN)创建或丢失** 如果使用的ODBC连接依赖于命名的DSN,则需要确认目标系统ODBC管理器中已存在对应的DSN设置。可以通过以下方式验证并修复: - 打开Windows中的`ODBC Data Source Administrator`工具。 - 切换到`System DSN`或`User DSN`选项卡,查找是否存在对应的数据源名称。 - 若不存在,请点击`Add`按钮,按照向导选择合适的驱动程序(如Access、SQL Server或其他数据库类型),完成DSN的创建过程[^1]。 2. **缺少必要的ODBC驱动程序** 此类错误也可能由于系统中缺失特定类型的ODBC驱动程序引起。例如,在尝试访问MySQL数据库时,如果尚安装适用于MySQL的ODBC驱动程序,则会触发此类异常。可以采取如下操作来解决问题: - 下载并安装适合当前操作系统架构(32/64)的官方ODBC驱动包。对于MySQL用户而言,推荐从其官方网站获取最新版的Connector/ODBC软件[^5]。 - 安装完成后重新启动计算机以确保更改生效,并再次测试连接功能。 3. **连接字符串语法不正确** ASP脚本文件内的连接字符串定义不当同样会造成类似的报错现象。下面给出几个常见的例子供参考调整使用: 对于MS Access数据库: ```asp strConnection = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("db.accdb") & ";" ``` 针对SQL Server实例: ```asp strConnection = "DRIVER={SQL Server};SERVER=localhost\SQLEXPRESS;DATABASE=test_db;UID=user_name;PWD=password;" ``` 当涉及到MySQL时则需注意选用恰当的驱动标识符 `{MySQL ODBC X.X Driver}` 替代原有部分[^4]: ```asp strConnection = "DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=my_database; UID=root; PASSWORD=mypassword;" ``` 4. **权限不足或者其他环境因素干扰** 还有一种可能性是因为运行Web应用的服务账户缺乏足够的权限去读取所需的注册表项或者是实际物理路径下的资源文件。此时应该审查IIS服务的身份设定情况,赋予适当级别的存取许可给相关目录及其子对象[^3]。 通过以上步骤逐一排查定根本原因之后再做针对性处理即可有效消除这类技术难题带来的困扰。 ### 示例代码修正后的ASP连接函数 ```asp <% Function OpenDatabase() Dim objConn, connectionString Set objConn = Server.CreateObject("ADODB.Connection") ' 修改此处为您的具体参数 connectionString = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" &_ "DBQ=" & Server.MapPath("/path/to/database.accdb") On Error Resume Next objConn.Open connectionString If Err.Number <> 0 Then Response.Write "<p>Failed to connect database: " & Err.Description & "</p>" Err.Clear Else Response.Write "<p>Succeeded connecting...</p>" End If Set OpenDatabase = objConn End Function %> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值