Server.Createobject returns ASP 0177: 8007045a 
Author Message
 Server.Createobject returns ASP 0177: 8007045a

I wrote a COM object to use on an ASP page. This object has to call a DLL I
did not write. The COM object compiles ok, but returns error ASP 0177:
8007045a when I try to create it with Server.Createobject on an ASP page. If
I remove calls to the other DLL from the COM object, the ASP pages loads it
ok

I use VC++ 6.0

Any ideas?

--

________________________
Mr. Olafur Valsson
Systems Analyst / Programmer
Tel: +354-860-7032



Tue, 15 Jul 2003 05:26:55 GMT  
 Server.Createobject returns ASP 0177: 8007045a
This DLL you did not write fails to load - either it is simply not found or
returns FALSE from DllMain
--
With best wishes,
    Igor Tandetnik


Quote:
> I wrote a COM object to use on an ASP page. This object has to call a DLL
I
> did not write. The COM object compiles ok, but returns error ASP 0177:
> 8007045a when I try to create it with Server.Createobject on an ASP page.
If
> I remove calls to the other DLL from the COM object, the ASP pages loads
it
> ok

> I use VC++ 6.0

> Any ideas?

> --

> ________________________
> Mr. Olafur Valsson
> Systems Analyst / Programmer
> Tel: +354-860-7032



Tue, 15 Jul 2003 05:52:14 GMT  
 Server.Createobject returns ASP 0177: 8007045a
Thank you for your reply.

I know the DLL fails to load, because the COM object loads ok when it doesnt
use the DLL.

The question is, why doesn't it load?
I wrote a C++ app that uses the DLL without problems.
I wrote a C++ app that uses the COM object (using the DLL) without problems.

The only problem is the ASP page, it doesn't load the COM object when the
COM object needs to load the DLL

Is this a security issue?

cant find explanation of error 8007045a anywhere.

Valsson



Tue, 15 Jul 2003 06:33:36 GMT  
 Server.Createobject returns ASP 0177: 8007045a
Try ErrorLookup tool. 0x8007045A is "A dynamic link library (DLL)
initialization routine failed."

Is the DLL accessible? I mean, is it on the path, or in the same directory
as the COM DLL? Maybe it simply cannot be found. Otherwise, do you know,
even approximately, what this DLL might be doing during initialization?
--
With best wishes,
    Igor Tandetnik


Quote:
> Thank you for your reply.

> I know the DLL fails to load, because the COM object loads ok when it
doesnt
> use the DLL.

> The question is, why doesn't it load?
> I wrote a C++ app that uses the DLL without problems.
> I wrote a C++ app that uses the COM object (using the DLL) without
problems.

> The only problem is the ASP page, it doesn't load the COM object when the
> COM object needs to load the DLL

> Is this a security issue?

> cant find explanation of error 8007045a anywhere.

> Valsson



Tue, 15 Jul 2003 07:03:08 GMT  
 Server.Createobject returns ASP 0177: 8007045a
Thank you again.

The error text says the initialization routine failed so the COM object must
have access to the DLL, otherwise we would get file not found error I think.
Anyway, my other programs using the COM object would also fail to find it if
it was not accessible.

There must be something the DLL is doing during initialization, and if so it
must be security related.

I've got closer to the problem, now I just need to know how the execution
from an ASP page is different from an EXE (run by interactive user).

Valsson



Tue, 15 Jul 2003 08:01:41 GMT  
 Server.Createobject returns ASP 0177: 8007045a
HKEY_CURRENT_USER is inaccessible.

--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD

MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================


Quote:
> Thank you again.

> The error text says the initialization routine failed so the COM object
must
> have access to the DLL, otherwise we would get file not found error I
think.
> Anyway, my other programs using the COM object would also fail to find it
if
> it was not accessible.

> There must be something the DLL is doing during initialization, and if so
it
> must be security related.

> I've got closer to the problem, now I just need to know how the execution
> from an ASP page is different from an EXE (run by interactive user).

> Valsson



Wed, 16 Jul 2003 05:11:07 GMT  
 Server.Createobject returns ASP 0177: 8007045a
is in icaccessible because of user rights? I tried to put all users into the
administrator group, still didn't work.

how does the registry affect the execution of a DLL that is not a COM
object?

the COM object loads ok on the ASP page, but if I compile the COM object
(which is by the way a DLL also) with functions call to a second DLL (I did
not write that one), then the COM object doesnt load.


Quote:
> HKEY_CURRENT_USER is inaccessible.

> --
> =====================================
> Alexander Nickolov
> Microsoft MVP [VC], MCSD

> MVP VC FAQ: http://www.mvps.org/vcfaq
> =====================================



Wed, 16 Jul 2003 20:05:07 GMT  
 Server.Createobject returns ASP 0177: 8007045a
Ah, in this case it's probably due to your second DLL not being found.
Put it in \windows\system32 and the loader will find it...

--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD

MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================


Quote:
> is in icaccessible because of user rights? I tried to put all users into
the
> administrator group, still didn't work.

> how does the registry affect the execution of a DLL that is not a COM
> object?

> the COM object loads ok on the ASP page, but if I compile the COM object
> (which is by the way a DLL also) with functions call to a second DLL (I
did
> not write that one), then the COM object doesnt load.



> > HKEY_CURRENT_USER is inaccessible.

> > --
> > =====================================
> > Alexander Nickolov
> > Microsoft MVP [VC], MCSD

> > MVP VC FAQ: http://www.mvps.org/vcfaq
> > =====================================



Sat, 19 Jul 2003 03:36:12 GMT  
 Server.Createobject returns ASP 0177: 8007045a
Thank you for your reply

the DLL is in the \winnt\system32 directory, it is found but returns
initialization error, in fact I have discovered that this problem only
exists if I'm trying to load this particular DLL, I can make my COM object
load other DLL's (all of them in \winnt\system32). The DLL that is not
working is FedExAPIclient.dll from Federal Express. I have posted this
problem to microsoft.public.vc.3rdparty newsgroup.

Valsson


Quote:
> Ah, in this case it's probably due to your second DLL not being found.
> Put it in \windows\system32 and the loader will find it...

> --
> =====================================
> Alexander Nickolov
> Microsoft MVP [VC], MCSD

> MVP VC FAQ: http://www.mvps.org/vcfaq
> =====================================



Sat, 19 Jul 2003 03:43:04 GMT  
 Server.Createobject returns ASP 0177: 8007045a
Perhaps you should contact FedEx directly too...

I'm sorry, I should've reread the posts history first. This is not a
security
issue. The whole registry hive for the current user is not loaded if
your code executes under the SYSTEM account. Or if it is run under
the IUSR_<machineName> account the registry entries expected
by that DLL may not be found. Once again, I recommend contacting
the DLL authors...

--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD

MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================


Quote:
> Thank you for your reply

> the DLL is in the \winnt\system32 directory, it is found but returns
> initialization error, in fact I have discovered that this problem only
> exists if I'm trying to load this particular DLL, I can make my COM object
> load other DLL's (all of them in \winnt\system32). The DLL that is not
> working is FedExAPIclient.dll from Federal Express. I have posted this
> problem to microsoft.public.vc.3rdparty newsgroup.

> Valsson



> > Ah, in this case it's probably due to your second DLL not being found.
> > Put it in \windows\system32 and the loader will find it...

> > --
> > =====================================
> > Alexander Nickolov
> > Microsoft MVP [VC], MCSD

> > MVP VC FAQ: http://www.mvps.org/vcfaq
> > =====================================



Sat, 19 Jul 2003 04:25:30 GMT  
 
 [ 10 post ] 

 Relevant Pages 

1. ASP 0177 (0x80040111) - ClassFactory cannot supply requested class

2. How to debug 0177:bff9215d page fault

3. Help with Server.CreateObject("Msxml2.ServerXMLHTTP")

4. Server.CreateObject()

5. Help! Server.CreateObject failure

6. Server.CreateObject Question

7. Server.CreateObject

8. external dll's prevent to Server.CreateObject in ASP files...

9. external dll's prevent to Server.CreateObject in ASP files...

10. LNK1214 : initialization failure (8007045A) :

11. DataSet returned from ASP.NET WebService

12. Return Recordsets or SafeArrays to ASP from C++?

 

 
Powered by phpBB® Forum Software