4/12/2005

ASP.NET 32-bit on Windows Server x64 IIS - Yes?

Windows Server 2003 x64 edition is so cool, now that I have a new 64 bit AMD machine to play on. One thing I was worried about, though, is how do you get ASP.NET 32 bit support in IIS 6.0 - which is now 64 bit! Uh-Oh!

Turns out there's a script mod you can make (the only place I found this is here.)


if you run the following command in Command Prompt, you will be able to use .NET 1.1 ASP.NET in x64s IIS6 (which runs in 32-bit mode):

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1

Oops! -- And here is the info from the "horses mouth" at TechNet.

DETAILS:
Running 32-bit Applications on 64-bit Windows (IIS 6.0)
Windows Server 2003TM, 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) extensionsISAPI filtersActive Server Page (ASP) applications (specifically, scripts calling COM objects where the COM object can be 32-bit or 64-bit)ASP.NET applicationsIIS 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.
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.