32bit Stuff on 64bit Windows Server 2003
Thursday, March 13, 2008 9:30It must have been answered a thousand times, and it must have caused confusion, annoyance and inconvenience far more then a million times. Needless to say I ran into the same problems when I started migration 32bit servers to their 64bit equivalent. I ran into problems not only with regards to IIS6, but also using some VBScripts I had used in the past.
For starters, I wanted to use FrontPage Server Extensions on a 64bit Windows 2003 Server. When you are used to the 32bit Windows versions, you will know that you can add the FrontPage Server Extensions to your Windows machine by using the Add/Remove Programs feature in the Control Panel.
In the 64bit versions of Windows Server 2003 the FrontPage Server Extensions come as a seperate download from Microsoft. It can be found here: http://www.microsoft.com/downloads/details.aspx?FamilyID=BAC7ABF9-3C78-44BB-8A72-6F8ED2AA0E8E&displaylang=en There’s a security update as well: http://www.microsoft.com/downloads/details.aspx?FamilyID=F453530D-7063-49AB-B304-9C455DE6D8DA&displaylang=en
Installing the Server Extensions is a breeze. Just install it… It’ll work..
But when you think that after installing the Extensions, they can actually be used, you will be disappointed. They can’t. You will need to start fiddling around with settings you might not even knew existed.
First of all, you will need to enable 32bit applications to run in IIS6 on your 64bit machine. You can do this by issuing this command:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
Okay, so now 32bit applications will run under your 64bit IIS installation. But 32bit applications require the 32bit Framework. The 32bit Framework is not installed by default. Well.. It’s on your machine, but isn’t ‘enabled’. You can install it (or better; register it in IIS) by issuing this command:
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
Notice that the path refers to “..\Framework\..”. That’s the 32bit version. The 64bit version is installed in “..\Framework64″.
Okay, your almost done.
Since Windows is ‘Secure by Default’, the 32bit ASP.NET Framework is not allowed to run at this point. Just go into your IIS6 manager and enable the 32bit ASP.NET 2.0 Framework.
That’s it… It should work…
This KB article will help you switching between versions: http://support.microsoft.com/kb/894435/en-us
But this is not where the fun ended… I had some VBScripts that connected to mySQL. I always used the ADODB.Connection object to connect to the mySQL Server using myODBC. These scripts were now all failing with vague errors like;
Data source name not found and no default driver specified
Okay, I could start explaining about the ins and outs of these type of error messages, but you might be more interested in the solution.
Just use cscript.exe in the C:\Windows\SysWOW64 directory to start the script. Do not use the cscript.exe in C:\Windows\System32. That’s it. Nothing more to it. That will do the trick!
10 Responses to “32bit Stuff on 64bit Windows Server 2003”
Leave a Reply
You must be logged in to post a comment.

Ionut says:
April 7th, 2008 at 8:57 PM
How do you do the same thing on WS2K8?
Since it has IIS7 I wasn’t able to find %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs
Thanks,
Ionutz
tino says:
April 7th, 2008 at 9:10 PM
Since IIS7, by default, does no longer use the metabase like IIS6 does, there is no need for tools modifying it.
In stead, IIS7 stores all configuration in XML files.
You can issue this command;
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.enable32BitAppOnWin64:true
Tino
Brady says:
May 8th, 2008 at 12:31 AM
So far so good. Your last step of “Just use cscript.exe in the C:\Windows\SysWOW64 directory to start the script…”
What script do I need to start?
tino says:
May 8th, 2008 at 10:09 AM
Brady,
If you are on IIS7, you do not need (or have) the IIS Admin scripts. But if you are on IIS6, you need the admin scripts that are, by default, installed at %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs
You will need to issue this command:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64
Remeber, that you will need the cscript version in the C:\Windows\SysWOW64 directory, not the one in the C:\Windows\System32 directory.
Brady says:
May 8th, 2008 at 1:41 PM
Tino,
Thanks for the help but I still am getting the “[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified ” errors.
I just don’t get it. I figured I best upgrade to a 64-bit OS when we purchased our newest DELL webserver as we would need to move to 64-bit at some point in the future. Anyway, I have W2003 r2 64-bit, MySql’s newest version that is 64-bit and MySql’s newest 64-bit ODBC driver, and my webpages are ASP with Javascript and some VBSript pages. MySql works great, the ODBC driver connects just fine but for what ever reason IIS is not making the proper handshake with the ODBC driver.
When I first tried to access my pages I got the following error “Provider is not specified and there is no designated default provider.” I then applied the hot fix from Microsoft as discussed in this forum: http://forums.mysql.com/read.php?37,167520,204476#msg-204476
Then I applied the steps that you have listed and now I’m stuck on this error. “Microsoft OLE DB Provider for ODBC Drivers error ’80004005′
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”.
I just don’t understand it. Running ASP on w2003 32-bit is a breeze to setup and it runs wonderfully. 64-bit versions of MySql and Microsoft Operating systems have been out for years now. You would think Microsoft would have this figured out by now. Jumping through a bunch of hoops to try and get Microsoft’s ASP to run on Microsoft’s OS is not good.
I guess I’ll have to go back to the 32-bit OS, loose 4G of the 8G of memory that is in the system and wait for another couple of years to see if this all gets worked out.
Sorry, to have bothered you with this post. I know I’m not the most technically minded on the “fixes” for this but I’ve never had to be. ASP with w2k and w2003 32-bit were so simple to setup and they just worked. Is w2008 64-bit worth trying? I’ve heard that it fixed these issues but I’m real skeptical right now.
Thanks,
Brady
tino says:
May 8th, 2008 at 2:03 PM
Hi,
If you want to run VBScripts that connect to a mySQL server you might have to modify your connection string in the script.
Most probably, you will have something like this in your script;
Dim objConn
Set objConn = CreateObject(“ADODB.Connection”)
objConn.ConnectionString = “DSN=[database];UID=[user];PWD=[password];SERVER=[server]”
bjConn.Open
If so, please change the ConnectionString;
objConn.ConnectionString = “Driver={MySQL ODBC 3.51 Driver};DATABASE=[database];UID=[user];PWD=[password];SERVER=[server]”
Change the ConnectionString, save the .vbs file and run it with the cscript from the C:\Windows\SysWOW64 directory.
Brady says:
May 8th, 2008 at 3:43 PM
THANK YOU!
Changing the connection string fixed it.
I have looked all over the web trying to figure this out and I can’t find any documentation on it. I know I’m not the only one having this problem.
Thanks!
Joe says:
May 16th, 2008 at 11:17 AM
You are the man. This particular set of magic words corrects the issue when you try to use the automatic deploy options (copy web site, publish) from Visual Studio 2005 to a 64 bit hosted server.
Thanks!
Darren says:
May 30th, 2008 at 11:29 PM
Thanks for the help first off. I was able to enable the 32 bit applications in iis. But now none of the pages are showing up. Not even the plain html pages. Please help!
Chris says:
June 13th, 2008 at 10:49 AM
Thanks for your help Tino. Just one other thing i noticed. I was running an ASP script on IIS6 and trying to connect to MySQL DB through the ODBC. I was getting the errors above. I have now learnt that on x64 you can create a odbc connection for a 32bit app and a 64bit app.A 32 bit application will only see 32bit side ODBC connection and a 64bits app will only see a 64bit ODBC connection.
Ironically the C:\Windows\SysWOW64\ is actually the 32 Bit libraries and the System32 folder is for 64bit. Therefore to setup an ODBC link for 32bit application you must use
C:\WINDOWS\SysWOW64\odbcad32.exe and for 64bit application you must use
C:\WINDOWS\System32\odbcad32.exe. Once i used the odbc32.exe in the syswow64 folder and installed the 32 bit ODBC driver everything worked!!!!!
the joys of 64 bit processing