By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,364 Members | 1,521 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,364 IT Pros & Developers. It's quick & easy.

ASP page that calls ActiveX object fails under x64 IIS 6

P: n/a
Hi,

I'm porting a Web site from 32 bit IIS 6 to x64 IIS 6 (Windows Server 2003
x64 R2) and I'm having trouble using an ActiveX object inside an ASP page
(old ASP, not ASP.NET). The CreateObject call fails under x64 IIS, while is
working fine under x86 IIS.
I found out that the problem may be related to the fact that the ActiveX is
based on a 32 bit DLL, while IIS runs at 64 bit.
I tryed to simply write a WSH VBS file that creates the object. If I barely
doubleclick on it it'll fail, while running it with
C:\Windows\sysWow64\Wscript.exe script.vbs (so using the 32 bit version on
WSH) works fine.
Now I need to find a solution to the IIS problem. Considering that:
1) I don't have the source code of the ActiveX and the company that
developed it is not releasing a 64 bit version.
2) I cannot figure out to use a different ActiveX and change hundreds of
pages to adapt to it.
3) I don't like too much to use brand new x64 hardware with old 32 bit
operating system(without considering that I spent weeks to fine tune Windows
installation).
What else could I do ??
Is there any way to run certain ASP pages in 32 bit mode ? Otherwise, is
there any way to wrap something around the ActiveX to expose it to IIS as if
it was a 64 bit code ?
I think this problem should be very common when porting old sites to 64 bit
IIS.

Any suggestion is appreciated.

Thanks.

Massimo.
Jul 27 '06 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Hello,

Regarding the issue, I suggest you may first install Windows 2003 server
SP1. After implement this, there is a metabase property
"W3SVC/AppPools/Enable32bitAppOnWin64" added. We can control IIS starts a
32-bit worker process or a 64-bit worker process by its value. For details,
you may refer to :

http://support.microsoft.com/?id=895976

I believe this is worthy of try if the activex component can only be run in
32 bit mode.

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

Jul 28 '06 #2

P: n/a
Hi Luke,

thanks for you reply.
I tryed you solution and works. My concern is that, doing this way, the full
IIS will run in 32 bit emulation mode and will not benefit of the 64 bit
hardware. Because the site is quite heavy and we plan to make it richer in
the near future, we'd like to benefit of the 64 bit execution of ASP pages.
I read on an MSDN blog
(http://blogs.msdn.com/david.wang/arc...4bit_IIS6.aspx
point 2) that a 32 bit COM object can be loaded on a 64 bit IIS. Do you
think I can create a COM object that wraps the ActiveX DLL and solve the
problem in this way ?

Thanks.

Massimo.
Jul 28 '06 #3

P: n/a
Hello Massimo,

As David mentioned in the blog:

When we are running ASP pages that are creating and using the 32bit COM
component, COM+ is smart enough to start up a 32bit dllhost.exe process to
load the 32bit COM component and run it. This "magic" fails if your 32bit
COM component relies on being in the same process as the ASP code
creating/using it - such as if the component tries to change a thread token
or read the process token. But for the most part, this is an easy
compatibility approach.

We cannot guarantee all ActiveX components are compatible with x64 IIS,
espcially we don't the internal implementation of the ActiveX component.
Ideally, the vendor of ActiveX components may provide a version with 64 bit
OS compatible for this issue.

Sincerely,

Luke Zhang

Microsoft Online Community Support
This posting is provided "AS IS" with no warranties, and confers no rights.

Jul 31 '06 #4

P: n/a
Hello,

I am closely monitoring the newsgroup and I am contacting you to check the
issue status.

If you have anything unclear, please feel free to post in the newsgroup and
we will follow up.

Thank you for using our Newsgroup Support Service!

Sincerely,

Luke Zhang

Microsoft Online Community Support
This posting is provided "AS IS" with no warranties, and confers no rights.

Aug 2 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.