【发布时间】:2015-06-10 14:30:35
【问题描述】:
我目前正在将 ASP 平台从 Windows 2003 R2 IIS 6 Web 服务器迁移到 Windows 2012 R2 IIS 8.5 Web 服务器。我正处于将多个站点迁移到两个单独的 2012 Web 服务器的阶段,一切看起来都很棒,客户和开发人员都很高兴...但是在托管几天后出现以下错误新服务器。
Active Server Pages error 'ASP 0223'
TypeLib Not Found
/jobboard/conf/constants.vbs.inc, line 1
METADATA tag contains a Type Library specification that does not match any Registry entry.
元数据标签如下:
<!--METADATA TYPE="typelib" NAME="Microsoft ActiveX Data Objects 2.8 Library" UUID="{2A75196C-D9EB-4129-B803-931327F72D5C}" VERSION="2.8"-->
在此服务器上重新启动 IIS 解决了该问题(尽管是暂时的)。
几天后,另一台 2012 年生产中的 Web 服务器出现同样的错误,再次重新启动 IIS 并暂时正常工作。
我已经检查了注册表,并且存在具有正确 UUID 和正确权限的相关标签。
它不会影响服务器上的所有站点,只会影响特定应用程序池中的所有站点。
应用程序池使用域用户身份,并且站点被分成多个共享池。
【问题讨论】:
-
应用程序池是否在 32 位模式下运行?我认为 IIS 找不到注册表项的唯一原因是它是否在错误的注册表配置单元中查找(32 位与 64 位)
-
在 64 位架构服务器上,32 位类存储在
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Classes,而 64 位类存储在HKEY_LOCAL_MACHINE\Software\Classes。 -
虽然不是断断续续的事实。
-
您好,感谢您的宝贵时间!应用程序池在 64 位模式下运行。 ASP 应用程序也来自具有 64 位应用程序池的 64 位环境。
标签: iis asp-classic iis-6 ado iis-8.5