Framework versus framework 64 in IIS 8.5


I need to know the difference between Framework and Framework64 folder C:\Windows\Microsoft.NET folder and please don't make assumption that I know basic things that you already know.

For example, I have ASP.NET sites on 32 bit windows 2003 R2 / IIS 6, and I am moving them to Windows 20112 R2 64 bit / IIS 8.5 by building sites and moving the code etc. I have also Apache sites on Linux but that is another issue.

Here are my questions

1-)  Is it safe to assume that all the web app hosted on Windows 2003 R2 is 32 bit applications, because OS is 32 bit.
2-)  If not, how i can determine which app is 32 bit and which one is 64 bit
3-)  When I run commands such as caspol and aspnet_regiis -ga on Windows 2012 R2 during building sites , Should I run them in   C:\Windows\Microsoft.NET\Framework64\ or C:\Windows\Microsoft.NET\Framework\

( I am aware that I should run these commands in the subfolders of v4.0.30319 or v2.0.50727 depending on the site. But that is not my question. My question is which folder ; framework or framework64 )

So far I was running all the commands in C:\Windows\Microsoft.NET\Framework

4- ) if that is the case, meaning I should be running them under C:\Windows\Microsoft.NET\Framework on Windows 2012 R2 / IIS 8.5 , then in which case I should be running them in C:\Windows\Microsoft.NET\Framework64 folder.


Who is Participating?
Emmanuel AdebayoConnect With a Mentor Global Windows Infrastructure Engineer - ConsultantCommented:

1-)  Is it safe to assume that all the web app hosted on Windows 2003 R2 is 32 bit applications, because OS is 32 bit.

This is not necessarily the case, you can run 64bit application on 32bit OS in some cases though you will lose the added performance and flexibility as if you were running the application on 64bit OS, i.e more memory usage, processor management etc.

2. Go to the IIS Manager
     Right Click the application "application pool" that you want to check
     Select "Properties"
     Click "Configuration"
      Under Mapping you will se
      C:\Windows\Microsoft.NET\Framework64\  - For 64bit application
       C:\Windows\Microsoft.NET\Framework\ - For 32bit application.

3. The folder that you are going to run this for will depend on the version
      C:\Windows\Microsoft.NET\Framework64\  - For 64bit application
       C:\Windows\Microsoft.NET\Framework\ - For 32bit application.

4. 32-bit Windows applications are not automatically Windows 64-bit compatible.
If you have 32-bit application you want to run from the Command Prompt then you need to use the WOW64 version of cmd.exe.
At the Start Menu select Run and enter the following command. Note that the %systemroot% variable points to your Windows folder so this will work even if Windows is not installed on C: drive:

it_saigeConnect With a Mentor DeveloperCommented:

I believe you are confused on point one, you *cannot* execute 64-bit code on a 32-bit platform, you *can*, however, execute 32-bit code on a 64-bit platform.


1.  Yes, you can assume that all of your applications on the 2003 Server are 32-bit applications so long as the OS itself *is* 32-bit.

As pointed out by Emmanual, you cannot, however, make the assumption that your 32-bit applications will function using their 64-bit framework counterparts.

Luckily, though, IIS has an application pool setting which allows for you to specify the preference of the 32-bit framework.  If you go to your websites application pool, right-click on it and choose Advanced Settings, you will see a setting for 'Enable 32-Bit Applications' -Capture.JPG
toronto2456Author Commented:
Thanks Emmanuel and Saige ,

These are very nice and clean answers. Thanks. I think so too applications should be 32 bit on Windows 2003 R2 32 bit server. But IIS 8.5 allows to run 32 bit as well with that setting as saige pointed out.

Okay, then If I have a web site written 64 bit then, I should be using framework64 folder . I think that is clear now. Thanks ,,,

Actually I have noticed that my 4 th question doesn't make sense. from the answer to 3 questions , if the app is 32 bit then I should be using framework , if it is 64 i should be using framework64.

-- Emmanuel,if possible  could you please expand on the use case of WOW64 version of cmd.

for example, my code of the site sits on UNC share on NAS  and when I build the site on Windows 2012 R2 , I run this caspol command in standard cmd command prompt, i am not using WOW64

caspol.exe -m -ag 1 -url "\\UNC_Path\*" FullTrust. My application is 32 ( when looking at the place you told me ).  so far I was running this command and aspnet_regiis -ga Service_Account command as well in C:\Windows\Microsoft.NET\Framework\v4.0.30319 folder on Windows 2012  and sites works fine with no issue. I didn't use WOW64 but i have heard about it

Could you please tell me in which case i need to use the WOW64 version of cmd.

is it that , for example, if i want to run this 32 bit apps as if 64 bit ?

I couldn't understand the following statement :

------If you have 32-bit application you want to run from the Command Prompt then you need to use the WOW64 version of cmd.exe-----

Thanks very much

Emmanuel AdebayoGlobal Windows Infrastructure Engineer - ConsultantCommented:
If you want to run your 32-bit Applications on 64-bit Windows, you can click on the application pool properties as suggested by it_saige and change the "False" to "True"
toronto2456Author Commented:
But without change that value, my 32 bit applications is till running on Windows 2012 R2 alreadywith no issues.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.