无法启动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个回答

6

分享给未来的读者。手动创建一个虚拟目录对我有用。

  • 在解决方案浏览器中选择项目
  • 按下Alt + Enter
  • 转到Web部分
  • 单击创建虚拟目录

6
我遇到的唯一解决办法是创建另一个测试项目,然后按照以下步骤操作:
  1. 右键单击该项目,转到“属性”->“Web”

  2. 在“使用本地IIS Web服务器”部分的项目URL下,复制项目URL(http://localhost:59002/)——这是从测试项目中复制过来的。

  3. 导航到出现错误的项目。右键单击项目,进入“属性”->“Web”。

  4. 将项目URL粘贴到“使用本地IIS Web服务器”部分(从测试项目中复制的URL)。关闭测试项目并保存。

  5. 删除测试项目并运行出错的项目。完成以上步骤之后,问题得以解决...

也许这不是最好的方法,但这是我能找到的唯一方法。我在重新加载笔记本电脑(硬盘崩溃)并从它们所托管的服务器获取了我的所有项目之后收到了这个错误消息。

4

在我的情况下,当我允许外部请求访问我的IIS Express网站并配置Windows防火墙允许iisexpress.exe后,我无法从Visual Studio 2013中启动它。但我仍然可以通过命令行启动它,并且它能很好地服务于本地和外部请求。

C:\Program Files (x86)\IIS Express>iisexpress /site:MyWebSiteName

我尝试创建了一个防火墙规则来允许我的端口,之后Visual Studio就可以正常工作了。


3
  1. 关闭所有的Visual Studio实例。
  2. 打开任务管理器。
  3. 结束所有正在运行的IIS进程。
  4. 重新启动Visual Studio。

3

我的问题是通过以下方式解决的:

  • 在控制面板(程序和功能)中,我发现所有与IIS相关的功能都未被勾选。最终我勾选了所有这些功能并重新启动了系统。
  • 然后我以管理员身份启动了我的VS 2013,一切都正常了。

3
我们的网站也遇到了同样的问题,但我们在Visual Studio中解决了这个问题。我们使用的是2012 Ultimate版本。
我们发现的潜在问题是启用SSL后,由于某种原因,VS为标准URL和安全URL分配了相同的端口。我们似乎是从TFS下载代码时出现了这个问题。
为了解决这个问题,我们采取了以下步骤:
1.右键单击项目并转到“属性”->“Web”。
2.在“使用本地IIS Web服务器”部分的项目URL下,删除URL中的“s”,然后保存。(例如,从https://:44301改为http://:44301。这将使下一步起作用)。
3.在“解决方案资源管理器”中,选择该项目,在属性窗口(如果未显示,请按F4)中将“SSL启用”更改为“False”,然后再更改为“True”。它将生成一个与标准URL不同的新端口。(在我的情况下,我有44301作为我的SSL和44305作为我的标准)
4.返回“属性”->“Web”并将“s”添加回项目URL。
5.F5并享受!
请确保“覆盖应用程序根URL”的复选框未选中。

3

我遇到了相似的问题——VS无法加载特定的Web项目,因为出现了错误。

  • 在解决方案中编辑项目
  • 查找 UseIISExpress 和/或 UseIIS 部分,并确保它们之间没有重叠。

在我的情况下是这样的:

...
<UseIISExpress>True</UseIISExpress>
...
<UseIIS>True</UseIIS>
...

所以,我已经更改为:

...
<UseIISExpress>True</UseIISExpress>
...
<UseIIS>False</UseIIS>
...

然后它就工作了。


我该到哪里“在解决方案中编辑项目”?我在 Visual Studio 中的 ASP.NET Web 解决方案中寻找类似的内容,但是却找不到任何与此类似的内容。 - TylerH

2

除了@Yehuda Shapira所提供的答案外,我还需要进行另一个更改,即删除.csproj.user文件,其中包含绑定信息,例如

<IISUrl>http://localhost:54462/</IISUrl>

文件被存储。删除该文件后关闭 Visual Studio,然后重新构建。


2

在我的情况下,我在删除绑定之后,在applicationHost.config文件上添加了一个新的站点绑定,然后它就正确地工作了。 applicationHost.config文件的路径在您的项目根目录上的.VS(hidden)文件夹中。


2
几天前,我试图使用局域网(192.168...)的应用程序URL。后来,我在.json文件中更改了所有的URL,但是在从VS启动IIS Express时仍然收到错误。在applicationHost.config中,我找到了带有提到的URL的<binding>,将其删除后问题得到解决。 - miki

2
今天我遇到了这个错误。我的电脑是Win 8.1,使用的是VS 2013。突然间我的项目无法运行了,我收到了消息“无法启动IIS Express Web服务器”,但没有更多的信息。
过了一会儿我发现,所有无法启动IIS Express的项目都在运行 .net 3.5版本。而运行较新版本的项目则可以正常启动。
解决方案是我需要从控制面板中删除 .net 3.5(在"打开或关闭Windows功能"中),重启计算机,再重新安装 .net 3.5。

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