ASP page that calls ActiveX object fails under x64 IIS 6

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Guest's Avatar

    ASP page that calls ActiveX object fails under x64 IIS 6

    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\sysW ow64\Wscript.ex e 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.


  • Luke Zhang [MSFT]

    #2
    RE: ASP page that calls ActiveX object fails under x64 IIS 6

    Hello,

    Regarding the issue, I suggest you may first install Windows 2003 server
    SP1. After implement this, there is a metabase property
    "W3SVC/AppPools/Enable32bitAppO nWin64" 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 :

    Microsoft Support is here to help you with Microsoft products. Find how-to articles, videos, and training for Microsoft Copilot, Microsoft 365, Windows, Surface, and more.


    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
    Gain technical skills through documentation and training, earn certifications and connect with the community

    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.



    Comment

    • Guest's Avatar

      #3
      Re: ASP page that calls ActiveX object fails under x64 IIS 6

      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.


      Comment

      • Luke Zhang [MSFT]

        #4
        Re: ASP page that calls ActiveX object fails under x64 IIS 6

        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.



        Comment

        • Luke Zhang [MSFT]

          #5
          Re: ASP page that calls ActiveX object fails under x64 IIS 6

          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.

          Comment

          Working...