无法获得IIS Express 8 beta作为64位进程运行网站

在x64的Windows 7我试图得到你好世界MVC 3网站作为64位进程运行(所以Environment.Is64BitProcess在页面上返回true)使用IIS Express 8最新的testing版。

IIS Express 7.5是32位,但IIS Express 8不支持64位( http://learn.iis.net/page.aspx/1266/iis-80-express-beta-readme/ )。

无法获得任何64位爱。

构buildAnyCpu返回Is64BitProcess为false,构buildx64给出“试图加载一个格式不正确的程序”,就好像它试图以32位进程运行一样。

重命名文件夹等实验表明,“ C:\ Program Files(x86)\ IIS Express ”只是正在被使用的东西,VS被C忽略了“ C:\ Program Files \ IIS Express”

我怎样才能让VS使用x64 IIS Express主机?

这个选项现在是Vs 2013/2015/2017的一部分:

工具| 选项| 项目和解决scheme| Web项目| 使用IIS Express的64位版本

从微软回应http://visualstudio.uservoice.com上的论坛post

即使它没有得到Microsoft的正式批准或支持,我仍然在使用它。

Mike Harder(微软)发表评论 ·2013年1月31日下午5点26分

通过设置以下registry项,可以将Visual Studio 2012configuration为使用IIS Express 64位:

reg添加HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ WebProjects / v Use64BitIISExpress / t REG_DWORD / d 1

但是,此function不受支持,尚未经过Microsoft的全面testing。 Visual Studio的下一个版本正在考虑改进对IIS Express 64位的支持。

允许IIS Express 64位从Visual Studio 2012运行

晚会,但VS2013有这个选项。

工具 – >选项 – >项目和解决scheme – > Web项目 – >使用64位版本的IIS Express …

在这种情况下,您必须从命令行启动iisexpress,

http://learn.iis.net/page.aspx/870/running-iis-express-from-the-command-line/

由于我不确定微软何时会更新VS集成部分,以便您selectx64 IIS Express。 目前的整合显然只有x86。

在registry中,转到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\IISExpress\8.0\InstallPath并将path更改为64位iisexpress.exe位置。

执行以下操作在x64上的IIS8 Express中的x64项目中运行VS2012项目。 我正在运行x64 WCF服务。 见下文,

  • 安装IIS Express 8的 x64版本。

  • 设置项目运行x64位。

在这里输入图像描述

  • 添加一个自定义的Web服务器URL。 因为您不想在项目运行时启动服务(F5)。

在这里输入图像描述 – 写一个bat文件,并添加以下内容。 把正确的unc位置的applicationhost.config和正确的项目名称。 保存bat文件。

 cd "Program Files"/IIS Express iisexpress.exe /config:"\\companyname.com\root\User-Profiles\testusername\Documents\IISExpress\config\applicationhost.config" /site:"YourProjectName.WcfHost" /apppool:"Clr4IntegratedAppPool" 
  • 运行(F5)该项目。
  • 双击bat文件启动IIS Express 8 for x64。 请参阅Windows任务pipe理器和IIS Express系统托盘。 在这里输入图像描述

在这里输入图像描述

您可以从命令行以64位模式运行IIS Express,然后使用VS“attach to process”进行debugging。
看到这个问题 。
玩的开心。

似乎创buildEXE,除了启动64位IIS,并将其放在32位iisexpress.exe地方做别的什么都iisexpress.exe

这是我用来创buildEXE的C#代码:

 using System.Diagnostics; namespace IISExpress64 { class Program { static void Main( string[] args ) { Process.Start( @"C:\Program Files\IIS Express\iisexpress.exe", string.Join( " ", args ) ); } } } 

简单的可能性只是将IIS x64设置为WEB项目的启动程序:

Project Properties – > Web – > Start Action – > Start Program:c:\ Program Files \ IIS Express \ iisexpress.exe命令参数:/ path:{yourProjectPath} / port:{yourPort}

为了在我的系统上解决这个问题,我欺骗了 – 我将64位可执行文件(在\Program Files\IIS Express\ )中复制到32位可执行文件(位于\Program Files (x86)\IIS Express\ )中。 Visual Studio似乎并不关心它是否是其中之一。

我想我们将不得不等待VS 2012的最终版本是否允许在32位和64位IIS Express之间进行select。