Fail to create IXSSO.Query object

C

csw

I'm moving classic asp sites from Windows 2000 / IIS 5 to Windows 2008 R2 /
IIS 7.

* We have the "Indexing Service" started.
* I have application pool in 32 bit mode.
* IXSSO.DLL is present in System32 directory. (dated 7/13/2009)
* Catalogs were created and looked OK.


However, I am unable to create an ixsso.Query object.
Get the following error message :

Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object
/HC/ECO/Announcements/Headlines/SearchResults.asp, line 39

my ASP code :
<%
Dim sSearchString
Dim oQuery
Dim results()
sSearchString = Request.Form("query")
Const SEARCH_CATALOG = "Headlines"

Set oQuery =
Server.CreateObject("IXSSO.Query")
oQuery.Catalog = SEARCH_CATALOG
oQuery.Query = "@all " & sSearchString &
" AND NOT #path *downloads* AND NOT #path *images* AND NOT #filename *.class
AND NOT #filename *.asa AND NOT #filename *.css AND NOT #filename
*postinfo.html AND NOT *.txt AND NOT #filename sendmail.asp, AND NOT
#filename *defaultpopup.asp"

oQuery.MaxRecords = 50
' sort by creation date
oQuery.SortBy = "Create[d]"
'oQuery.SortBy = "rank[d]"
oQuery.Columns = "Htmlhref, DocAuthor,
vpath, doctitle, FileName, Path, Write, Size, Rank, Create, Characterization,
DocCategory, HitCount"
Set oRS =
oQuery.CreateRecordSet("nonsequential")
%>


It crashed at " Set oQuery = Server.CreateObject("IXSSO.Query") "


My questions:
1)Can I copy IXSSO.DLL from W2K (6/19/2003) 32 Bit to W2K8? Thus the
"bitness" issue can be resolved.
2) If this permission issues, what kind of permission I need to grant
accounts and directory? I set up the web application with "Window
Authentication mode" and using IIS_IUSRS group (the new build in group).
 
B

Bob Barrows

csw said:
I'm moving classic asp sites from Windows 2000 / IIS 5 to Windows
2008 R2 / IIS 7.

* We have the "Indexing Service" started.
* I have application pool in 32 bit mode.
* IXSSO.DLL is present in System32 directory. (dated 7/13/2009)
* Catalogs were created and looked OK.


However, I am unable to create an ixsso.Query object.
Get the following error message :

Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object
/HC/ECO/Announcements/Headlines/SearchResults.asp, line 39

my ASP code :
irrelevant

It crashed at " Set oQuery = Server.CreateObject("IXSSO.Query")
"


My questions:
1)Can I copy IXSSO.DLL from W2K (6/19/2003) 32 Bit to W2K8? Thus the
"bitness" issue can be resolved.

"bitness"? Is WS2008 necessarily 64-bit? If so, you will also need to either
find a 64-bit version of the dll is it exists, or force IIS to run in 32-bit
mode (I forget how to do that but google should supply the answer).
If you are using ADO, especially with Jet backend, you will likely to have
already forced IIS into 32-bit mode.
2) If this permission issues, what kind of permission I need to grant
accounts and directory? I set up the web application with "Window
Authentication mode" and using IIS_IUSRS group (the new build in
group).

If it's not a "bitness" issue, then it's more likely a registration issue.
Have you registered the dll? Use regsvr32.exe to register it, unless WS2008
has a different tool.

If you still have issues and get no answers here, you might want post in the
iis group.
 
C

csw

Bob

Thanks for the reply. I already forced IIS into 32-bit mode. That's why I
thought to copy the w2k IXSSO.dll ( 32-bit) to replace the W2K8 version). I
was wondering if any one ever did that and succeeded??

I also will try to register the dll again. new version and old version.

csw
 
D

Dan

Don't forget that you can't just overwrite the 64-bit W2K8 version with the
32-bit DLL from W2K - 64-bit and 32-bit DLLs are in different folders in a
64-bit Windows install.

Can you switch IIS back to 64-bit mode and see if that then works? If you're
on W2K8 64-bit then that would explain why IXSSO.DLL can't be loaded - it's
a 64-bit DLL, and so your ASP application has to be running in 64-bit mode
to load it.

Dan
 
C

csw

Dan
I switched back to 64-bit Application Pool, then it ran. Then,

it crashed on

set conn = server.createobject("ADODB.Connection")
conn.open "DBQ=" & Server.MapPath("/Employees/Directory/ldapexchange.mdb") &
";Driver={Microsoft Access Driver (*.mdb)};"

This is the reason that have to use 32-bit application pool. So, if I copy
32-bit IXSSO.dll to both 32 and 64 directories, will 64-bit processor run
32-bit dll???
 
D

Dan

There is no 64-bit Jet driver, so you've got no choice but to use 32-bit
mode with an Access database and ADO.

No, don't copy the 32-bit IXSSO.DLL to both the 32 and 64-bit system
folders. Put it in the 32-bit folder, which is c:\Windows\SysWOW64 (MS
decided to keep system32 on a 64-bit machine pointing to the native OS
files, and added a 32-bit layer - the WOW emulator - that looks for it's
DLLs in SysWOW64). I don't know if it will work, but if you put it in the
System32 folder then you'll break the 64-bit version of IXSSO.

Dan
 
D

Dan

What crashed? Or do you just mean you get errors? Did you also run
regvsr32.exe to update the registry so that the correct GUID is listed?

Dan
 
C

csw

Dan

Yes. Sorry I meant the program errored out. Oops, I forgot to run
regvsr32.exe. Let me try it again.

C
 
C

csw

Well Dan

It errored out after I registered DLL in WOW64. : (

Here is my quick solution. I created a new web application to run indexing
on 64-bit and kept 32-bit to run MS Access, ADO.

C
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top