54

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?

Kiquenet
  • 14,494
  • 35
  • 148
  • 243
bunt
  • 302
  • 2
  • 13
  • 25
  • Did you get this working? Did you use one of the answers below? Mark one as your accepted answer. Cheers. – CodeMonkeyKing Oct 30 '13 at 00:45
  • Strange that VS isn't smart enough to use the proper version of IIS Express, depending on the configuration of the project being debugged! – Josh M. Sep 14 '15 at 12:48

11 Answers11

84

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

Eric Bole-Feysot
  • 13,949
  • 7
  • 47
  • 53
32

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

CodeMonkeyKing
  • 4,556
  • 1
  • 32
  • 34
  • 1
    Also works and is necessary in VS2013 - other workarounds are possible, but out of the box an x64-only component or Assembly will not work in VS2013 - not fixed despite Microsoft's assertions on MSDN. – Chris Moschini Mar 21 '14 at 18:25
  • @ChrisMoschini For VS2013, there is an easier way than the registry setting. See Eric Bole-Feysot's more recent answer to this question. – Chris W. Rea Jun 12 '14 at 19:30
  • 1
    @ChrisW.Rea Thanks! Notably this checkbox appears to just toggle that Reg entry. – Chris Moschini Jun 12 '14 at 19:34
6

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…

Kugel
  • 19,354
  • 16
  • 71
  • 103
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.

Lex Li
  • 60,503
  • 9
  • 116
  • 147
  • Got it, thanks for confirm. For anyone similarly looking for a VS-based solution, I found you can use straight IIS w/ x64 application pool - put breakpoint in your global.asax, hit run, add whitespace to web.config and save it, that will trigger the breakpoint, almost as good as IIS Express. – bunt Apr 18 '12 at 11:15
  • To simplify the task of running it in the command line you can run the x86 version from VS, use ProcessExplorer to copy the command line and just replace "Program Files (x86)" with "Program Files" in the command. – axk Nov 30 '12 at 16:49
3

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.

lucian.pantelimon
  • 3,673
  • 4
  • 29
  • 46
3

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.

enter image description here

  • Add a custom web server url. Because you don't want to start the service when the project run (F5).

enter image description here - 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. enter image description here

enter image description here

Diganta Kumar
  • 3,637
  • 3
  • 27
  • 29
  • Maybe command like this: iisexpress.exe /config:"C:\Users\{your user here}\Documents\IISExpress\config\applicationhost.config" /site:"WcfService.x64" /apppool:"Clr4IntegratedAppPool" – Kiquenet Mar 27 '14 at 08:24
  • I have Windows 8.1 64 bits. I think, I have iisexpress_8_0_RTM_x64_en-US.msi because if I try install iisexpress_8_0_RTM_x64_en-US.msi appears Repair option and not appears for Install, but I have IISExpress 8.0 in %ProgramFiles(x86)%/IISExpress path (x86?). And in Task Manager appears IIS Express Worker Process (32 bits) – Kiquenet Mar 27 '14 at 08:32
2

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.

Community
  • 1
  • 1
blorkfish
  • 21,800
  • 4
  • 33
  • 24
  • How can I run IIS Express in 64 bit mode ? I have Windows 8.1 64 bits. I think, I have iisexpress_8_0_RTM_x64_en-US.msi because if I try install iisexpress_8_0_RTM_x64_en-US.msi appears Repair option and not appears for Install, but I have IISExpress 8.0 in %ProgramFiles(x86)%/IISExpress path (x86?). – Kiquenet Mar 27 '14 at 08:33
2

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 ) );
        }
    }
}
1

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}

Florin Grigoriu
  • 169
  • 1
  • 3
0

I am using VS2022, change Bitness from 86 to 64 works for me.

enter image description here

Rm558
  • 4,621
  • 3
  • 38
  • 43
-2

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.

Warren Rumak
  • 3,824
  • 22
  • 30