无法获得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。