无法让IIS Express 8 beta以64位进程运行网站

时间:2012-04-18 02:38:47

标签: 64-bit iis-express

在x64 Windows 7上我试图使用IIS Express 8最新测试版将hello world MVC 3网站作为64位进程运行(因此Environment.Is64BitProcess在页面上返回true)。

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

无法获得任何64位的爱。

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

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

如何让VS使用x64 IIS Express主机?

10 个答案:

答案 0 :(得分:82)

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

  

工具|选项|项目和解决方案|网站项目|使用64   IIS Express的位版本

答案 1 :(得分:32)

从微软回复http://visualstudio.uservoice.com上的论坛帖子 -

这对我有用,即使它没有得到微软的正式认可或支持。

  

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

     

您可以将Visual Studio 2012配置为使用IIS Express 64位   设置以下注册表项:

     

reg add   HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ WebProjects / v   使用64BitIISExpress / t REG_DWORD / d 1

     

但是,此功能不受支持且尚未经过全面测试   由微软。改进了对IIS Express 64位的支持   考虑下一个Visual Studio版本。

Allow for IIS Express 64 bit to run from Visual Studio 2012

答案 2 :(得分:6)

晚会,但VS2013在选项中有这个。

工具 - >选项 - >项目和解决方案 - >网络项目 - >使用64位版本的IIS Express ...

答案 3 :(得分:3)

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

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

由于我不确定Microsoft何时更新VS集成部件以允许您选择x64 IIS Express。目前的集成显然只是x86。

答案 4 :(得分:3)

在注册表中,转到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\IISExpress\8.0\InstallPath并将路径更改为64位 iisexpress.exe 位置。

答案 5 :(得分:2)

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

  • 安装IIS Express 8的x64版本。

  • 将项目设置为运行x64位。

enter image description here

  • 添加自定义网络服务器网址。因为您不想在项目运行时启动服务(F5)。

enter image description here   - 写一个bat文件并添加以下内容。放置applicationhost.config的正确unc位置和正确的项目名称。保存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任务管理器和IIS Express系统托盘。 enter image description here

enter image description here

答案 6 :(得分:1)

您可以从命令行以64位模式运行IIS Express,然后使用VS“attach to process”进行调试。
this question
玩得开心。

答案 7 :(得分:1)

似乎创建EXE除了启动64位IIS并将其置于32位iisexpress.exe之外别无其他功能。

这是我用来创建EXE的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 ) );
        }
    }
}

答案 8 :(得分:1)

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

项目属性 - >网络 - >开始行动 - >启动程序:c:\ Program Files \ IIS Express \ iisexpress.exe 命令参数:/ path:{yourProjectPath} / port:{yourPort}

答案 9 :(得分:-3)

为了在我的系统上解决这个问题,我作弊 - 我在32位可执行文件(\Program Files\IIS Express\)中复制了64位可执行文件(在\Program Files (x86)\IIS Express\中)。 Visual Studio似乎并不关心它是一个还是另一个。

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