ASP错误0223 - 找不到TypeLib,断断续续,在IIS重新启动后解析

时间:2015-06-10 14:30:35

标签: iis asp-classic iis-6 ado iis-8.5

我目前正在将ASP平台从Windows 2003 R2 IIS 6网络服务器迁移到Windows 2012 R2 IIS 8.5网络服务器。我正处于将多个站点迁移到两个独立的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标记如下:

<!--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和正确的权限。

它不会影响服务器上的所有站点,只会影响特定应用程序池中的所有站点。

应用程序池使用域用户身份,站点被拆分为多个共享池。

2 个答案:

答案 0 :(得分:2)

我现在确定了造成上述问题的原因......

我们在IIS上的网站运行在以域用户身份运行的多个共享应用程序池中。我们还有一个Windows调度程序作业,它在夜间运行许多脚本,这些脚本也作为同一个域用户运行。

似乎有时这个调度程序作业运行会干扰IIS工作进程。当它完成并结束其用户会话时,它将卸载内存中的注册表文件,w3wp.exe进程也可以使用该文件。

此错误显示在事件日志...

  

Windows检测到您的注册表文件仍被其他人使用   应用程序或服务。该文件现在将被卸载。该   保存您的注册表文件的应用程序或服务可能无法运行   之后适当的。无需用户操作。

同时引用当前正在运行的w3wp.exe进程。

当我作为域用户终端服务并在一段时间后再次注销时,它被复制了。事件日志显示错误,不久之后所有网站都遭到轰炸。

以其他用户身份运行预定作业已为我们解决了此问题。

答案 1 :(得分:0)

我记得有一个ADOVBS.inc的包含文件,其中包含所有ADO常量,并将其作为标准ASP包含在我的全局包含文件中,该文件包含在网站的每个页面上。

这是在我使用META方式包含文件之前。

所以也许最后的办法是恢复ADO常量中的加载方法。

似乎某种阈值被点击,CPU /内存?,然后阻止IIS缓存/从注册表加载文件。然后,这会导致错误和池的循环。由于没有对500.100.asp错误处理程序页面进行重定向,该页面隐藏了用户的错误详细信息。它会建议错误在IIS中并与服务器相关。

由于