Re: Accessing 32 bit COM components in 64 bit IIS
From: David Hood (david_hood_at_hotmail.com)
Date: 04/26/04
- Next message: Kristofer Gafvert: "Re: Using a virtual directory as the root of a website"
- Previous message: RentMyWeb: "Re: SMTP is not working to one domain"
- In reply to: David Wang [Msft]: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Next in thread: David Hood: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Reply: David Hood: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Reply: David Wang [Msft]: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Messages sorted by: [ date ] [ thread ]
Date: 26 Apr 2004 11:04:35 -0700
Thanks for your reply David. I appreciate that the problem isn't so
much to do with IIS but your replies in this forum were the only place
I seemed to be able to find any information on the subject.
>From the 64 bit Windows documentation I gather the following...
C:\Windows\SysWow64 contains a 32 bit version of regsvr32.exe
C:\Windows\System32 contains a 64 bit version of regsvr32.exe
Just to be sure the component was registered using both the 32 bit
regsrv32.exe program and the 64 bit regsvr32.exe program.
Before the 64 bit registration the error reported was
ASP 0177: COM Error 0x800401f3: This error code means ‘Not
registered'
After the 64 bit registration the error reported was
COM Error 0x800a01ad: This error code means ‘Not all components are
accessible'
Once the 32bit COM component is loaded into DLLHOST.EXE it is then a
32 bit application which may need to load other 32 bit components.
However this should not be a problem as the 32 bit VB application that
does the same thing as the ASP page works fine. The ASP page error
occurs at the point when it tries to load the first 32 bit component.
Is there some sort of ASP setting which enables out of process 32 bit
components perhaps?
David
"David Wang [Msft]" <someone@online.microsoft.com> wrote in message news:<#4Az2tXKEHA.3184@TK2MSFTNGP10.phx.gbl>...
> Welcome to WOW64. You have to be aware of all the rules, or else behavior
> will look very strange. All of this has NOTHING to do with IIS -- it
> applies generically to all processes on Windows. IIS is just another
> process.
>
> COM component registration exists in two locations, one for 64bit processes
> and one for 32bit processes. Where a registration goes depends on the
> bitness of the process that does the registration. If the registration is
> done by a 32bit process, like some existing x86 setup.exe, then it is only
> going to exist in the 32bit location. If the registration is done by a
> 64bit process, it will exist in the 64bit location and be mirrored to the
> 32bit location.
>
> Thus, it is possible to register a COM component on a 64bit OS and have it
> only available to 32bit process (like VB) but not 64bit process (like
> ASP.DLL interpreting ASP pages).
>
> Therefore, I have to ask how you registered this COM component -- because if
> you just ran the x86 setup program, it's likely to only exist for 32bit
> processes like VB -- ASP runs as a 64bit process, so it's not going to see
> that component unless you register it in 64bit as well -- and this explains
> your observation.
>
> --
> //David
> IIS
- Next message: Kristofer Gafvert: "Re: Using a virtual directory as the root of a website"
- Previous message: RentMyWeb: "Re: SMTP is not working to one domain"
- In reply to: David Wang [Msft]: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Next in thread: David Hood: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Reply: David Hood: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Reply: David Wang [Msft]: "Re: Accessing 32 bit COM components in 64 bit IIS"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|