(Note: I thought about posting this to serverfault, but I figured more developers have banged their heads against these issues than admins)
I'm trying to set up a web page that uses both ASP Classic and ASP.NET 2.0 in the environment mentioned above. After applying many common fixes on the web and a few lucky guesses, the ASP.NET 2.0 pages are finally running fine (Minus COM+). The ASP Classic pages aren't running at all.
So I'm thinking the x64 environment is a the cause of most of my problems. Is there anyone here using old COM+ stuff with ASP Classic and ASP.NET in x64 and IIS7 with some words of wisdom?
You need to set the application pool to 32 bit mode ("Enable 32-bit Applications" in advanced properties). Set anonymous user permissions correctly. More IIS7 ASP material from learn.iis.net.
When working with x86 stuff in one of the fancy new x64 environments, look over your shoulder at every opportunity for configuration settings that need to be applied to both sides(x86/x64) of the operating system.
My problems were being caused by two groups of configuration settings that had to be set in both x64 and x86.
To enter the settings in the x86 side, here are some tips:
Copy any needed DLLs into the sysWOW64 folder.
Use a 32-bit Console to launch utilities such as the SQL Server Client Network Utility (cliconfg) and Registry Editor (regedt32). Using the 32-bit console will launch these utilities from the 32-bit system folder (%windir%\SysWoW64). I made a shortcut pointed to %windir%\SysWoW64\cmd.exe and launched it as an administrator.
Related
My task is simple: I need to test my ASP.NET web application in a 64-bit environment on my development machine. (At this point I don't even ask about running it through a debugger. All I need is to run it in a 64-bit process.)
So I created a stock C# Web Application in Visual Studio 2010 and adjusted its properties as such:
I then did Ctrl+F5 (or run without debugging) and IE loaded up and hangs up like so:
What am I doing wrong here?
PS. Running it on Windows 7 Ultimate (64-bit).
We had the same problem and when the team jumped to Visual Studio 2012, this registry key was really useful to us :
you can add a registry key to force visual studio to use the 64 bits version of iisexpress.exe ; unfortunately for you, it is a VS2012-only solution.
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects
/v Use64BitIISExpress /t REG_DWORD /d 1
Then restart Visual Studio and tick [X] Use IIS Express in your settings.
(see also the source).
UPDATE: For reference, in Visual 2013, this option can be found in the interface : Options/Projects and Solutions/Web Projects/Use the 64 bit version of IIS Express for web sites and projects
In IIS make sure the Application Pool, Advance Settings, Enable 32-Bit Applications = false
If this setting is true then the worker process will run as 32bit WOW64 process.
Chris
No settings required in project or solution level. I am developing WebApp on VS2010 on 32 bit and 64-bit machines simultaneously. Actually We are working on SVN and our few machines have Win7 32-bit and my few mates have Win7-64bit laptops. But there we haven't faced any such issue while compiling the app on two different machines and Even on the live server, it runs butter smooth. Hardly care about the bit and bytes.
To verify a test run. Publish your code and host in your local IIS or Cassini Webserver and access it over LAN.
Also if possible revert back solution and project settings to its original configuration settings. Generally, We do not need to change target until and unless it is strictly required. As, AFAIK, It compiles the assembly under "Any CPU" as target, which is eligible for all i.e. IA, X64 and X86..
Finally, if you are coming across any error, please do post it here. It will help you and us as well.
First of all how to do you know if your IIS process is running your website as 32-bit or 64-bit as of now?
Open Task manager to check the bitness of w3wp.exe. If your machine is 64-bit then IIS will run 64-bit by default. Your problem seems to be something else. If bitness is the issue then you won't even come this far. Check IIS logs (c:\inetpub\logs{website-ID}{date})... that might give you some pointers. If there is nothing in there, check event viewer. If nothing then check if the virtual directory is actually created in IIS Manager under Default Web Site.
Have you actually tested if IIS (sans ASPX) is functional? http:// localhost ? does that work? if that is working then I would recommend checking if your ASP.NET modules are properly installed within IIS.
Hope this Helps.
I'm working on restructuring a website written in ASP .NET. I'm working on Vista machine with 2010. The intended deployment server is 64-bit machine running IIS.
Now, I know that exactly same code will work on both the machines, but I may have to compile the code differently for the deployment server. Can anyone guide me regarding correct settings for this & place to change these settings?
Thanks!
Just set "Any CPU" as a Platform in your project properties. You can access it through
Build->Configuration Manager...
And you site will work on both x32 and x64
I have a Windows 2003 Server 64bit running IIS 6.0.
When I set the server up, I noticed that the 'ASP.NET' tab has been removed from the 'Web Sites' property in IIS Manager.
Now every website runs on .NET 2.0 and I need to change them to run on .NET 4.0.
I have ASP.NET 4 (32bit) enabled in the 'Web Service Extension' (the only other options ASP.NET versions 2 in both 32 and 64 bit modes).
I can confirm that in C:\Windows\Microsoft.net folder, there is both 'WOW' and 32bit .Net installation.
This is a production server with many websites and I'm afraid to run some IISReg scripts to put back the 'ASP.NET' tab.
When I try to the .Net 4 targeted website, I get an error:
Unrecognized configuration section system.web.extensions
The version information shows .Net 2.0
So what can I do?
Thanks!
As I indicated in my 'Comments' above, I had to run IIS in 32bit mode in a 64 bit system to target a certain web application. The background information for that can be see here:
http://dillieodigital.wordpress.com/2010/10/07/windows-server-2003-64bit-iis-6-32bit-asp-net-4-framework-and-targeting/
That resulted in running all websites in 32 bit mode with .NET 2.0. To get the new web application to run in .NET 4, I followed instructions, per:
http://mlichtenberg.wordpress.com/tag/iis6-asp-net/
Problem solved!
FYI.
Thanks.
I am trying to port an existing ASP.Net 1.1 website to another web server that currently runs IIS7 and a number of websites that target either .Net 2.0, 3.5 or 4.0. All other sites continue to work perfectly. Unfortunately, I can only browse static files on the newly imported site. If I try to access any of the Features in IIS7 for the new site I get the following error dialog:
There was an error while performing
this operation.
Details:
Filename:
\\?\C:\Windows\system32\inetsrv\config\applicationHost.config
Error:
I followed the instructions on this page but am at a loss as to how to get this working.
I encountered this problem too this afternoon.
I did a quick google and found others with the same issue on the asp.net forum. The issue seemed to be that
Here is what got me past this error, hope it works for you.
the runtime tries to load the
corresponding configuration, it
doesn't take the bitness of the
application pool into the
consideration. As you know, ASP.NET
1.1 is only supported on 32-bit. So if you have a 64-bit OS, in order to
run ASP.NET 1.1, you have to enable
32-bit applications in the application
pool. So, with the QFE/SP2 on 64-bit
OS (and only on 64-bit OS), the
runtime is incorrectly looking for the
1.1 version of the configuration under Framework64, which does not exist.
Workaround:
Create the Framework64 directory for 1.1
md \windows\microsoft.net\framework64\v1.1.4322\config\
Copy the 32bit config to 64bit config location created in step 1.
copy \windows\microsoft.net\framework\v1.1.4322\config\machine.config
\windows\microsoft.net\framework64\v1.1.4322\config\
http://blogs.iis.net/wonyoo/archive/2009/06/18/workaround-running-asp-net-1-1-on-vista-sp2-ws08-sp2.aspx
I'm trying to get a new DotNetNuke site up and running on our 64-bit server, and I'm encountering the following error message:
"The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine"
I know from experience that you run into this when you target a 64-bit assembly on a 64-bit machine (there is no 64 bit OLE-DB provider currently). In that case, I simply target the x86 in Visual Studio and everything works fine.
But in this case, the site uses dynamic compilation, so there's no simple place to specify that I need to target x86. Any thoughts?
TIA.
You could change your app pool that you're running that site under to run as a 32 bit application. In the IIS7 manager, its under "Advanced Settings" of your app pool, and then set "Enable 32-bit Applications" to true.
You could also do this with AppCmd from a console with the following:
appcmd apppool set /apppool.name:MyNukeSite /enable32BitAppOnWin64:true
In IIS6 - you could try something like this (2 lines here, run aspnet_regiis when finished changing the metabase value)...
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
aspnet_regiis.exe -i
See the following for more info:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5d306956-b2a2-4708-9bb9-72a395d474bb.mspx?mfr=true
http://blogs.msdn.com/irfanahm/archive/2008/12/15/how-to-use-a-32-bit-dll-in-asp-net-page-which-is-hosted-on-64-bit-iis.aspx
http://support.microsoft.com/kb/895976
HI, Now the Microsoft has released the 2010 Office System Driver Beta: Data Connectivity Components which is supported both in 32 bit as well as 64 bit OS. So using this driver instead of the traditional Microsoft.Jet.OLEDB.4.0 driver will give us a 64 bit application running on a 64 bit server (that is what we really need).
Though this is in beta, it worked fine for me.
You can download this driver from 2010 Office System Driver Beta: Data Connectivity Components
Thnks
You shouldn't try to target your application to 32-bit in which case you are losing the advantages of using 64-bit system. As aaa has pointed out, you can use the latest Access Database Engine 2010 to address this issue. Please refer to my blog post for complete solution.
Hope it helps.