Application Server Solutions for Microsoft IIS and ASP.NET
       solutions   products   partners   company   support   downloads         store
JTurbo Self-Help: FAQ
Back to Search >  Back to Search Results

Faq ID 296
Product ServletExec
Category System Requirements, Web Server Support
Question Can I run ServletExec on 64-bit Windows?
Answer

If you are using SE 6.0 or higher then the answer is "Yes when using IIS running on a CPU whose architecture is AMD64/Intel64". See the System Requirements area of this website for more details.


If you are using SE 5.x then the answer is either "Yes when using IIS running on a CPU whose architecture is Itanium", or "Yes when using IIS running on a CPU whose architecture is AMD64/Intel64, and when that IIS has been configured to load 32-bit DLL's and when using a 32-bit JVM."

Please read below for the gritty details for doing this.
According to the information found in a Microsoft technote, this should be possible. Go to:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS
Then click on the link for "IIS 6.0 Technical Reference". Then click on the link for "Running 32-bit Applications on 64-bit Windows".
At the time this FAQ was written, the information found there was:

Running 32-bit Applications on 64-bit Windows (IIS 6.0)
Windows Server 2003, Service Pack 1 enables IIS 6.0 to run 32-bit Web applications on 64-bit Windows using the Windows-32-on-Windows-64 (WOW64) compatibility layer. IIS 6.0 using WOW64 is intended to run 32-bit personal productivity applications needed by software developers and administrators, including 32-bit Internet Information Services (IIS) Web applications.
On 64-bit Windows, 32-bit processes cannot load 64-bit DLLs, and 64-bit processes cannot load 32-bit DLLs. If you plan to run 32-bit applications on 64-bit Windows, you must configure IIS to create 32-bit worker processes. Once you have configured IIS to create 32-bit worker processes, you can run the following types of IIS applications on 64-bit Windows:
Internet Server API (ISAPI) extensions ISAPI filters
Active Server Page (ASP) applications (specifically, scripts calling COM objects where the COM object can be 32-bit or 64-bit)
ASP.NET applications
IIS can, by default, launch Common Gateway Interface (CGI) applications on 64-bit Windows, because CGI applications run in a separate process. Configuring IIS to run 32-bit Web applications on 64-bit Windows
Before you configure IIS to run 32-bit applications on 64-bit Windows, note the following:
IIS only supports 32-bit worker processes in Worker Process Isolation mode on 64-bit Windows.
On 64-bit Windows, the World Wide Web Publishing service can run 32-bit and 64-bit worker processes. Other IIS services like the IIS Admin service, the SMTP service, the NNTP service, and the FTP service run 64-bit processes only.
On 64-bit Windows, the World Wide Web Publishing service does not support running 32-bit and 64-bit worker processes concurrently on the same server.
For the procedure to run 32-bit Web applications on 64-bit Windows, see Configuring IIS to Run 32-bit Applications on 64-bit Windows.
After configuring IIS to run 32-bit Web applications on 64-bit Windows After you configure IIS 6.0 to run 32-bit Web applications, IIS stores 32-bit DLLs and ISAPIs in the %windir%\syswow64\inetsrv directory. All other IIS files, including the MetaBase.xml file, are stored in the %windir%\system32\inetsrv directory. File access to the System32 and sub directories are transparently redirected based on the bitness of the process making that file access (64-bit processes have full access, while 32-bit processes have access to System32 redirected to Syswow64). If your legacy applications have specific 32-bit file access needs and you notice application failures, see if the application needs to reference the new %windir%\syswow64\inetsrv to resolve the problem.
The article mentioned above which is named: "Configuring IIS to Run 32-bit Applications on 64-bit Windows" links to another Microsoft technote page which says:
To enable IIS 6.0 to run 32-bit applications on 64-bit Windows
  1. Open a command prompt and navigate to the %systemdrive%\Inetpub\AdminScripts directory.
  2. Type the following command:
    cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true"
  3. Press ENTER.

Note that if your IIS was previously running in 64-bit mode with some 64-bit ISAPI filters then these filters will need to be removed or changed to their 32-bit equivalents before IIS will run properly in 32-bit mode. For example, if you have ASP.NET 2.0 installed then you'll need to make sure the ISAPI filter for it points to the 32-bit version of aspnet_filter.dll and not the 64-bit version.

You may also find FAQ #302 to be of interest.

Note that several customers have reported to us that the above procedures work just fine. However 1 customer who was using Windows Server 2003 R2 (64-bit) told us that the above procedures did NOT work for them. That customer rebuilt their machine to use Windows Server 2003 SP1, performed the procedures given above and it then worked for them. So it would seem (at least from that 1 customer report) that R2 may require other or additional procedures, but we've not tested that here.
However, the information given here:
http://office.microsoft.com/en-us/assistance/HA100211591033.aspx
(under the heading: "Configuring IIS for 32-Bit Emulation Mode")
clearly states that the procedure for configuring 64-bit IIS to run in 32-bit Emulation Mode is exactly the same for both Windows 2003 & Windows 2003 R2.
At the time this note was written, the link above gave the following information:

  1. Click Start, and then click Run.
  2. In the Open box, type cmd, and then click OK.
  3. In the command prompt window, navigate to the %drive%:\Inetpub\Adminscripts folder, where %drive% is the drive in which Windows Server 2003 is installed.
  4. In the Adminscripts folder, type the following command:

    cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1

    Note The value "1" for Enable32bitAppOnWin64 specifies 32-bit mode, whereas the value "0" specifies 64-bit mode.

  5. Press ENTER.
  6. Type iisreset and then press ENTER.
  7. Close the command prompt window.

The only difference we see between the 2 sets of Microsoft-recommended steps given above is that the first set uses:
W3SVC/AppPools/Enable32BitAppOnWin64 "true"
while the 2nd set uses:
W3SVC/AppPools/Enable32BitAppOnWin64 1

If you are using R2, and neither of the above 2 procedures work for you, then you may want to contact Microsoft about it, and ask them "how do I make my 64-bit IIS on R2 be able to load 32-bit DLL's ?"



   
company media information terms of use privacy policy contact us