带有 COM 的经典 ASP 在 Windows Server 2008 R2 上抛出“未找到数据源名称且未指定默认驱动程序”

Posted

技术标签:

【中文标题】带有 COM 的经典 ASP 在 Windows Server 2008 R2 上抛出“未找到数据源名称且未指定默认驱动程序”【英文标题】:Classic ASP with COM throwing "Data source name not found and no default driver specified" on Windows Server 2008 R2 【发布时间】:2010-07-23 21:22:01 【问题描述】:

我们有一个连接到 COM 组件的经典 ASP 应用程序。 COM 组件从注册表读取连接字符串并连接到数据源。我们将 COM 包从 2003 盒子中导出并导入到 2008 R2 盒子中。我们已经检查了每个设置以确保其正确性。当我们点击经典的 ASP 站点时,我们会在事件查看器中看到以下内容:

Error Number: -2147467259
Error Description: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Additional Information: SPROC: sprocnamehere
Record Limit0 (User ID: 0)

我们在机器上创建了 DSN 以确保它可以连接。我们已经设置了IIS anonymous user。我们已经设置了IIS to run in 32-bit mode。仍然,同样的错误。还有其他想法吗? COM 包似乎以 64 位运行。

【问题讨论】:

【参考方案1】:

您已经接近了,但您可能已经使用 64 位版本的 ODBC 管理员来配置 DSN。 DSN 配置存储在注册表中,32 位和 64 位进程具有不同的注册表视图。改为运行 c:\windows\syswow64\odbcad32.exe。我认为。在 serverfault.com 上询问有关它的更多问题

【讨论】:

这就是问题所在。我不想使用 DSN。我正在努力不使用 DSN。我们的 COM 库将加密的连接字符串存储在注册表中。我只是使用了 32 位 ODBC 管理员,以便我可以测试连接。是的,我确实使用了 32 位 ODBC 管理员。 为了确保这就是我所做的,我从 64 位 ODBC 管理员中删除了所有 DSN,并在 32 位 ODBC 管理员中添加了一个新的 DSN。一样的东西。错误号:-2147467259 错误描述:[Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序。它必须与COM有关。 你到底为什么投反对票?我删除了我之前的评论,它可能太有用了。使用 serverfault.com 你到底为什么要我把这个发布到 serverfault.com?您的评论会很有帮助,但我没有使用 DSN。我会改变我对你的回答的投票,但这对我没有帮助。我并不是说要这样,但我已经检查了所有明显的事情。我们之前必须访问 32 位驱动程序,所以我明白了。

以上是关于带有 COM 的经典 ASP 在 Windows Server 2008 R2 上抛出“未找到数据源名称且未指定默认驱动程序”的主要内容,如果未能解决你的问题,请参考以下文章

使用 activex COM 组件加载 ASP 页面时出错

经典的 asp 访问数据库在 windows server 2012 上不起作用

从 Windows server 2000 移动到 2008 现在经典 ASP 目录查询无法正常工作

windows 2008 服务器和经典 ASP 目录查询

在运行 IIS8.5 的 Windows 2012 服务器上以经典 ASP 保存 XLS 工作表 - 部分有效

Windows Server 2003 中使用经典 ASP 的 MS Access 数据库