Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations wOOdy-Soft on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Problems Migrating From NT4 to 2003...

Status
Not open for further replies.

Elliott3

Programmer
Sep 5, 2002
347
CA
Hi,

I am working on a site that is being moved from an NT4 PC to Windows 2003... headache!! I am getting the following error:

error '8002801d'
/includes/my_include.asp, line 291

this is what's on line 291:

oView.Add ScopeKey, sql

oView is created as follows:

Set oView = CreateObject("Scripting.Dictionary")

If I do a search on that error message I find that people are getting a Dll that has not been registered... but their error also has additional info. If anyone hs any thoughts at all, I am open to try anything...

CES
 
If you want to see if the dll has been registered you can search the registry for Scripting.Dictionary. If you find it then the Dll has been registered. If you don't find it then you just need to go to the command prompt and use regsvr32.

Also I wonder if you have a database connection there from seeing the SQL script. I would be curious to what the connection and recordset looks like.

If you could post the code used in the file so we might see if there is anything else.

Cassidy
 
This si what is in 'sql':

CREATE VIEW #Clinical_Trial_Listings AS SELECT DocTitle, Directory, vpath, filename, size, write, characterization, rank, CompanyType FROM SCOPE (' SHALLOW TRAVERSAL OF "/patient/studies" ')

This is exsisting code that I did not write... i understand what is going on for the 'most' part...

any further thoughts? I have already checked and the dll for that is registered and I am able to create a separate one... im really just grasping at straws here as I am a little confused...

Though I am thinking that the main point would be that the ASP site is being moved in full from a server running NT4(where everything is running fine) to a windows 2003 box... im open to any suggestions here...

CES
 
The connection string looks like this...

dbConSearch_ConnectionString = "provider=msidxs;data source=e:\Inetpub\MyCatalog;"

if that helps at all?
 
There were several objects dropped from new versions of IIS since NT4.0. One of them is the mail object like CDONTS for mail. YOu would have to use CDO or some other ASP mail object. Some other ones are from the scripting library's and such.

The scripting dictionary is apartment threaded and the new IIS needs it to be multithreaded. So you need to use the commerce dictionary object instead of the scripting dictionary. If you go to you can find details on how to use the commerce dictionary object.

Here is an article explaining about IIS not supporting the scripting dictionary for that reason. This article is more pointed to commerce server, but it explains the point better.


I had a similiar problem when we upgraded to 2003 server with some other objects. Sometimes you can even just replace the object and not have to change the code. I do not have much experiance with the Commerce.Dictionary but you might try changing Scripting.Dictionary to Commerce.Dictionary.

If you need some more code or something let me know what the end result of the page is and I will try to give you a more coded solution.

Let me know

Cassidy
 
Thanks! I think your onto it here... I first tried to just add the commerce object like oyu suggested and I got the following error...

Microsoft VBScript runtime error '800a01ad'

ActiveX component can't create object: 'Commerce.Dictionary'

I have searched the registry for Commerce.Dictionary and ofund nothing... I dont know much about this... I just read something about it today... so what do I do since it is not found? Any idea?

CES
 
My wife is having me go to bed here so I will continue the search tomorrow. However here is something interesting for a work around


It has you set a session variable to the Scripting.Dictionary object. Then use that session variable. So your code would look like this:

Code:
Set Session("oView") = CreateObject("Scripting.Dictionary")

Everyplace you would have oView you would have to replace it with Session("oView")

I will look more tomorrow since it is late here. There might be others that know more about it than I do too.

Let me know

Cassidy
 
I tried the Session to no avail... thank you for the suggestions... let me know if anything else somes to mind..

CES

PS - hope i didnt get you in too much trouble with the wife lol
 
I think I have the solution. I did some research and this site seem to be the most real world solution to me. I talked a little to Microsoft and they said that its not a good idea to do what the earlier article suggested because you might be accessing it in a multiuser environment. That was my concern with it being aparment threaded and the solution that was proposed. Made it very ineteresting.


This goes into more detail and gives you free solutions to fix the problem. I will keep looking to see if I can get more information for you.

Let me know

Cassidy
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top