【问题标题】:IIS7 ADODB VBScript runtime error '800a01ad' Classic ASP - read lots, cannot resolveIIS7 ADODB VBScript 运行时错误“800a01ad”经典 ASP - 读取很多,无法解决
【发布时间】:2013-12-27 12:17:08
【问题描述】:

驱动器崩溃后,我在我的开发机器上安装了 IIS 7。以前运行 IIS 6。我使用的大多数站点都使用经典 ASP 并使用以下代码:

Set con  = Server.CreateObject("ADODB.Connection")

我现在收到以下错误:

Microsoft VBScript 运行时错误“800a01ad”
ActiveX 组件无法创建对象

我已经对此进行了数周的研究,并尝试了我在各种帖子中阅读的大量建议,但没有任何效果,这令人难以置信的沮丧......

运行 Windows 7 64Bit 我试过了:

  1. 应用程序池设置为“启用 32 位应用程序”为真(也尝试过假)
  2. ADO 已安装
  3. IUSR [机器] 的权限设置为读取/执行,“所有人”也尝试了相同的设置

真的很感激这方面的帮助,否则我能看到的唯一选择是回到 IIS 6,我不想这样做。

【问题讨论】:

  • 您所描述的应该可以正常工作。这只是一个疯狂的猜测,但是 ADO 中有需要注册的 dll 吗?
  • 感谢 John,之前尝试过但无济于事
  • 您是否尝试卸载 IIS 并重新安装?
  • 抱歉回复太晚了。是的,也尝试了完全重新安装。

标签: iis-7 asp-classic adodb


【解决方案1】:

以下是我将旧的 32 位组件(在 VB6 中创建)运行到 64 位 Windows Server 2012 的步骤:

  1. 使用 SysWow64 文件夹中的 regsvr32 注册组件,而不是 System32 文件夹中的默认值:

即C:\Windows\SysWOW64\regsvr32.exe pathOfTheComponent

  1. 找到您使用的应用程序池,将“启用 32 位应用程序”设置为 TRUE

【讨论】:

    【解决方案2】:

    一年前我遇到了一个类似的问题,ASP 脚本需要一些系统 DLL,但它神秘地无法访问。 只是为了排除安全权限,将应用程序池设置为在 IIS 中以[System] 运行。

    如果你仍然有问题,那么至少你知道问题出在其他地方。

    【讨论】:

    • 谢谢大卫,我按照你的建议尝试过,假设你的意思是 localSystem 但恐怕没有什么不同。还尝试了一些其他参数,但没有成功。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2010-11-14
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    相关资源
    最近更新 更多