Can't get IIS Express 8 beta to run website as 64-bit process

佐手、 提交于 2019-11-26 06:29:46

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!