ASP Error 0223 - TypeLib Not Found, intermittent, resolved after IIS restart

3.5k views Asked by At

I'm currently in the process of migrating an ASP platform from Windows 2003 R2 IIS 6 web servers to Windows 2012 R2 IIS 8.5 web servers. I'm at the stage where I've migrated a number of sites across to two separate 2012 web servers, all looked great, clients and developers are happy... However the following error has presented itself after a few days hosting on one of the new servers.

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.

The METADATA tag is below:

<!--METADATA TYPE="typelib" NAME="Microsoft ActiveX Data Objects 2.8 Library" UUID="{2A75196C-D9EB-4129-B803-931327F72D5C}" VERSION="2.8"-->

Restarting IIS on this server resolved the issue (albeit temporarily).

Subsequently the other 2012 web server in production presented the same error a couple of days later, again, restarted IIS and works for now.

I've checked the registry and the relevant tag exists with the right UUID and correct permissions.

It doesn't affect all sites on the server, only all sites in a particular application pool.

The application pools use a domain user identity and sites are split up into a number of shared pools.

2

There are 2 answers

1
Nick On BEST ANSWER

I've now determined what was causing the above problem...

Our sites on IIS run in a number of shared application pools running as a domain user. We also have a Windows scheduler job which runs a number of scripts over night which also run as the same domain user.

It seems there are cases when this scheduler job runs it interferes with the IIS worker processes. When it completes and ends its user session it unloads the registry file in memory, which the w3wp.exe processes could also using.

This error is presented in the Event log...

Windows detected your registry file is still in use by other applications or services. The file will be unloaded now. The applications or services that hold your registry file may not function properly afterwards. No user action is required.

Along with references to the w3wp.exe processes currently running.

It was replicated when I terminal serviced in as the domain user and logged out again after a period of time. The event log presented the error and the sites all bombed shortly afterwards.

Running the scheduled job as a different user has fixed this issue for us.

0
MonkeyMagix On

I remember having an include file for ADOVBS.inc with all the ADO constants inside and including it as a standard ASP include inside my global include file which is included on every page on the site.

This was before I used the META way of including the file.

So maybe a last resort is to revert to that method of loading in the ADO constants.

It seems like some sort of threshold is being hit, CPU/Memory?, which then prevents IIS caching/loading the file in from the registry. This then causes the error and a recycle of the pool. As no redirect is being done to the 500.100.asp error handler page which hides the error details from the user. It would suggest the error is in IIS and related to the server.

Thanks