无法启动IIS Express Web服务器

356

我有一个ASP.NET MVC 4的解决方案。当我尝试使用Visual Studio 2012打开它时,我会收到以下错误:

Microsoft Visual Studio

为ASP.NET 4.5配置Web https://localhost:失败。您必须手动为此站点配置ASP.NET 4.5,以便站点可以正确运行。无法在本地计算机上找到服务器 https://localhost:44300/ 。请确保已经配置本地IIS服务器以支持安全通信。

虽然解决方案已经打开。但是,当我尝试从调试菜单中运行它时,我会收到以下错误:

无法启动IIS Express Web服务器。

指定的启动URL无效。https://localhost:44300/

我无法调试代码。如何消除这些错误并从VS 2012调试/运行网站?


4
错误信息表明问题很明显:1)“你必须手动配置此站点以使ASP.NET 4.5正常运行。”和2)“指定的起始URL无效。”另外,你似乎正在使用HTTPS;据我所知,IIS Express不支持它(如果支持,您可能需要进行配置,因此需要“确保本地IIS服务器已被配置为支持安全通信”部分)。编辑:看起来它确实支持SSL:http://riii.nl/apr5u,这是Hanselman本人提供的逐步指南! - RobIII
看起来你需要进行一些配置,因为你似乎正在使用SSL;这里有Scott Hanselman本人的逐步指南 - RobIII
1
@Robel,我看到在站点的属性中,在应用程序选项卡下,目标框架是4.5,在Web选项卡下,启动操作是当前页面。我应该将项目URL更改为http://localhost:44300/吗?我正在使用IIS Express 8。 - DotnetSparrow
54个回答

0
请查看快照,我遇到了相同的错误,但以下设置解决了它:
  1. 选择当前页面作为启动操作

  2. 服务器选项中选择特定端口,并输入端口号26641,在虚拟路径中输入/

  3. NTLM选项应取消选中


0

我建议一种解决此问题的方法:

1.使用以下控制台命令删除 \Documents\IISExpress 文件夹:rmdir /s /q "%userprofile%\Documents\IISExpress"

  1. 删除位于 Visual Studio 项目根文件夹下 .vs\Config\ 文件夹中的 applicationhost.config 文件。

  2. 更改项目的随机 URL:在 Visual Studio 中,右键单击解决方案资源管理器中的项目节点,然后选择属性;浏览 Web 面板,然后更改“项目 URL”文本框值中的数字。

  3. 按以下截图所示添加 _CSRUN_DISABLE_WORKAROUNDS 环境系统变量,值为 1(感谢 Juan M. Elosegui 在 SO 帖子上的报告和图像):

enter image description here

祝你好运!


0
在dotnet core中,针对2021年的解决方案,您可以通过在“解决方案资源管理器”中右键单击项目并选择“编辑项目文件”来修复此错误。
在“调试”选项卡底部,您可以直接配置所需的端口以及是否使用SSL。

enter image description here

这里的更改需要使用Control+S保存。完成后,您可以启动项目并确认它是否修复了您的问题,无需删除IIS文件夹或其他建议。


0

我也遇到了这个问题,在关闭防火墙、以管理员身份打开、双重检查所有设置正确之后。

我的问题独特在于我想本地测试SSL,但同时也希望服务在局域网上可用。所以我将应用程序URL更改为使用本地IP,即192.168.1.10。

切换回localhost解决了问题,关闭SSL也有同样的效果,因此我发现本地SSL证书只适用于localhost。


0

我曾经遇到了同样的问题。我通过更改项目属性中的端口号来解决它。将我的端口号从50624更改为50625。

enter image description here


0

删除IISExpress文件夹中的内容,关闭并重新打开Visual Studio。然后再次运行即可。

或者更改端口号。


0

VS2015

编辑文件.csproj.user

插入以下 XML 标签(如果已存在,请勿重复)

<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>2870</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:2859</IISUrl>
<OverrideIISAppRootUrl>True</OverrideIISAppRootUrl>
<IISAppRootUrl>http://localhost:2859</IISAppRootUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>http://localhost/app</CustomServerUrl>

将上述标签插入到以下XML节点中:

<ProjectExtensions><VisualStudio><FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"><WebProjectProperties> 

0

这里提供的任何方法都不适用于我。最终有效的方法是在 .csproj 文件中将 DevelopmentServerPort 设置为 0:

    <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>0</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:52973/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
    </WebProjectProperties>

-1
在我的情况下,IIS Express的applicationhost.config文件中有几个元素的managedRuntimeVersion属性存在拼写错误。这种情况发生在Visual Studio 2012和Visual Studio 2013中。我只收到了消息的第一部分,即:

无法启动IIS Express Web服务器。

它在事件日志中记录了一个错误,其中包含以下消息:

工作进程未能预加载.Net Runtime版本v4.030319。

正确的运行时版本是v4.0.30319(注意第二个句点)。

我采取的纠正步骤如下:

  1. 导航到C:\Users\\Documents\IISExpress\config
  2. 编辑applicationhost.config
  3. 找到config部分
  4. 将任何引用“v4.030319”的内容更正为“v4.0.30319”

下次调试Web应用程序时,Visual Studio成功启动了IIS Express。


1
为什么这个被踩了?看起来是一个完全可行的解决问题的方法。 - dball
不确定为什么会在“applicationhost.config”中出现这样的拼写错误,除非是一些不知道自己在做什么的人在胡闹。如果这是一个升级错误,我认为社区中会更加普遍,因为微软搞砸了。我对这是否真的是一个好答案持中立态度。如果其他方法都失败了,那么可以尝试一下,但肯定不是我开始的地方。 - vapcguy
这个文件以这种方式损坏可能是罕见的情况,但我认为没有人应该对此进行负面评价。 - Lex Li

-1

其他的解决方案都对我没用。我禁用了编辑并继续功能,现在一切正常 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接