I just spent like 20 hours chasing this problem so I thought I'd post the solution here.
We host the IP Phone Corporate Directory on a Win 2003 web server and it works fine, but failed when we tried to move it to a Win 2008 server.
When the multidirectory.asp or localizeddirectory.asp script is run, it fails on this line:
var s = new ActiveXObject("LDAPSearch.LDAPSearchList");
If you try to access the service from a browser like this: http://myserver/CiscoIPServices/ASP/localizeddirectory/localizeddirectory.asp you'll get an error something like this:
XML Parsing Error: not well-formed
Line Number 1, Column 26:
View the page source and you'll see something like this:
<font face="Arial" size=2> <p>Microsoft JScript runtime </font> <font face="Arial" size=2>error '800a01ad'</font> <p> <font face="Arial" size=2>Automation server can't create object</font> <p> <font face="Arial" size=2>/CiscoIPServices/ASP/localizeddirectory/localizeddirectory.asp</font><font face="Arial" size=2>, line 51</font>
If you configure IIS to send detailed error messages to the browser, disable user-friendly error messages on your browser, and change
Response.ContentType from "text/xml" to "text/html" in the ASP script, you'll see the REAL error:
Microsoft JScript runtime error '800a01ad'
Automation server can't create object
/CiscoIPServices/ASP/localizeddirectory/localizeddirectory.asp, line 51
Microsoft provides this, which is may be of help for some issues, but not this one:
This '800a01ad' error is discussed in quite a few other posts on this forum (search for LDAP COM, or COM ERROR, or LDAPSEARCH) but I could not find anything about win 2008.
In the end I discovered the problem is that the Cisco DLL (LDAPSearch.dll) is 32-bit but Win 2008 is running in 64-bit mode. To fix it:
Run Server Manager
Navigate to IIS manager --> Application Pools --> DefaultAppPool
Edit Advanced Settings
Change "Enable 32-bit applications" to True
I hope this helps someone!