问题
on x64 Windows 7 I am trying to get hello world MVC 3 website running as 64-bit process (so Environment.Is64BitProcess returns true on a page) using IIS Express 8 latest beta.
IIS Express 7.5 is 32 bit but IIS Express 8 does support 64 bit (http://learn.iis.net/page.aspx/1266/iis-80-express-beta-readme/).
Can\'t get any 64-bit love.
Building AnyCpu returns Is64BitProcess false, building x64 gives \"An attempt was made to load a program with an incorrect format. \" as if it was trying to run as 32-bit process.
Experiments w/ renaming folders etc. suggest that \"C:\\Program Files (x86)\\IIS Express\" is only thing that is getting used, and \"C:\\Program Files\\IIS Express\" is being ignored by VS.
How can I get VS to use the x64 IIS Express host?
回答1:
This option is now part of Vs 2013 / 2015 / 2017:
Tools | Options | Projects and Solutions | Web Projects | Use the 64 bit version of IIS Express
回答2:
From a Microsoft response to forum post on http://visualstudio.uservoice.com -
This is working for me even though it is not endorsed or supported officially by Microsoft.
Mike Harder (Microsoft) commented · January 31, 2013 5:26 p.m.
You can configure Visual Studio 2012 to use IIS Express 64-bit by setting the following registry key:
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1
However, this feature is not supported and has not been fully tested by Microsoft. Improved support for IIS Express 64-bit is under consideration for the next release of Visual Studio.
Allow for IIS Express 64 bit to run from Visual Studio 2012
回答3:
Late to the party but VS2013 has this in the Options.
Tools -> Options -> Projects and Solutions -> Web Projects -> Use the 64 bit version of IIS Express…
回答4:
You have to launch iisexpress from command line in this case,
http://learn.iis.net/page.aspx/870/running-iis-express-from-the-command-line/
As I am not sure when will Microsoft updates the VS integration part to allow you to choose x64 IIS Express. The current integration obviously is x86 only.
回答5:
In the registry, go to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\IISExpress\8.0\InstallPath and change the path to the 64-bit iisexpress.exe location.
回答6:
Do the following to run VS2012 project in x64 project in IIS8 Express on x64. I am running x64 WCF service. See below,
Install x64 version of IIS Express 8.
Set the project to run x64 bit.
- Add a custom web server url. Because you don't want to start the service when the project run (F5).
- Write a bat file and add the following. Put the correct unc location of the applicationhost.config and the correct project name. Save the bat file.
cd "Program Files"/IIS Express
iisexpress.exe /config:"\\companyname.com\root\User-Profiles\testusername\Documents\IISExpress\config\applicationhost.config" /site:"YourProjectName.WcfHost" /apppool:"Clr4IntegratedAppPool"
- Run (F5) the project.
- Double click the bat file to start IIS Express 8 for x64. See Windows Task Manager and IIS Express system tray.
回答7:
You can run IIS Express in 64 bit mode from the command line, and then use VS "attach to process" to debug.
See this question.
Have fun.
回答8:
It seems that creating EXE that does nothing else but start 64-bit IIS and putting it in place of 32-bit iisexpress.exe does the job.
This is C# code I used to create the EXE:
using System.Diagnostics;
namespace IISExpress64
{
class Program
{
static void Main( string[] args )
{
Process.Start( @"C:\Program Files\IIS Express\iisexpress.exe", string.Join( " ", args ) );
}
}
}
回答9:
Simple possibility is just to set IIS x64 as starting program for the WEB project :
Project Properties -> Web -> Start Action - > Start Program : c:\Program Files\IIS Express\iisexpress.exe command arguments: /path:{yourProjectPath} /port:{yourPort}
回答10:
In order to solve this on my system, I cheated -- I copied the 64-bit executables (in \Program Files\IIS Express\) over the 32-bit executables (in \Program Files (x86)\IIS Express\). Visual Studio doesn't seem to care whether it's one or the other.
I guess we will have to wait and see if the final release of VS 2012 will allow for choosing between the 32-bit and 64-bit IIS Express.
来源:https://stackoverflow.com/questions/10202047/cant-get-iis-express-8-beta-to-run-website-as-64-bit-process