无法启动IIS Express Web服务器


310

我有一个asp.net MVC 4解决方案。当我尝试使用Visual Studio 2012打开它时,出现以下错误:

Microsoft Visual Studio

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

好的帮助

虽然解决方案打开。另外,当我尝试从调试菜单运行它时,出现以下错误:

 Unable to launch the IIS Express Web server.

The start URL specified is not valid. https://localhost:44300/

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

请提出建议。



4
错误消息很清楚是什么错误:1)You must manually configure this site for ASP.NET 4.5 in order for the site to run correctly.和2)The start URL specified is not valid.。您似乎也正在使用HTTPS。AFAIK IIS Express不支持该功能(如果支持,则可能需要对其进行配置,因此可能是该Make sure the local IIS server has been configured to support secure communications部件)。编辑:它似乎确实支持SSL:riii.nl/apr5u,由Hanselman本人提供的分步指南!
RobIII

1
@Robel,我看到在站点的属性中,在“应用程序”选项卡下,目标框架为4.5,在“ Web”选项卡中,“开始操作”为“当前页面”。我应该将项目URL更改为localhost:44300吗?我正在使用IIS Express 8
DotnetSparrow 2013年

这是防火墙设置:(
Moumit

1
我可以通过以下方式解决此问题-1)Visual Studio-选项->搜索-IIS 2)选中“对网站和项目使用IIS Express的64位版本”。
NanaFadanvis '11

Answers:


377

我有同样的问题。
原因-IIS配置文件错误。

尝试删除自动创建的IISExpress文件夹,该文件夹通常位于%userprofile%/Documents,例如C:\Users\[you]\Documents\IISExpress

不用担心,一旦再次运行解决方案,VS应该再次创建它-这次是正确的。


编辑:删除文件夹的命令行:

rmdir /s /q "%userprofile%\Documents\IISExpress"

7
这对我有用。即使在卸载并重新安装IIS Express 8之后,它仍然保留相同的配置文件,因此我的问题仍然存在。我将IISExpress文件夹重命名为其他文件夹,并使用干净版本的配置文件创建了一个新文件夹。
nthpixel

2
“在您的默认文件夹中”这到底在哪里?我根本没有在解决方案中看到它。
Corey Ogburn 2014年

22
@CoreyOgburn应该位于Documents文件夹和IISExpress下(即C:\ Users \ Corey \ Documents \ IISExpress \ Config),然后删除config文件夹。我有同样的问题,但这并不能解决我的问题。
Arne H. Bitubekk

49
谢谢。只是不要忘记关闭然后重新打开VS,以重新配置IIS Express。
Nick.T 2014年

6
@crokusek提供了VS2015 Update 3的答案。导航到解决方案目录中的“ .vs \ config”文件夹,然后在此处删除“ applicationhost.config”文件。
AJ。

234

如果使用VS2015或更高版本

确保iisexpress进程未运行。

确保没有其他进程在使用您想要的端口。您可以通过执行

netstat -a -b

在控制台中(以管理员身份输入cmd开始菜单,右键单击并选择“以管理员身份运行”)。例如,如果您看到状态为ESTABLISHED或LISTENING的条目,则意味着其他进程正在使用此端口。您需要终止该过程或更改端口。

然后删除以下文件

<<path_to_solution_folder>>\.vs\config\applicationhost.config

注意该.vs文件夹可能已隐藏

然后找到<<project-name>>.csproj.user文件,用文本编辑器(记事本)打开它,并确保IISUrlWebProjectProperties被配置到<IISUrl>http://localhost:XXXXX/</IISUrl>哪里XXXXX是你所需的端口。

这样做并尝试启动应用程序后,您可能会得到

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

然后转到{项目属性}-> Web并按“创建虚拟目录”按钮

在此处输入图片说明


1
这在VS2015上完美运行。在.NET Core解决方案中创建旧版Web应用程序项目后发生问题。
塞巴兹(Sebazzz)2016年

这个有效的.NET核心工具使IISE陷入困境:/
Keoz

我通常生活在OWIN / NancyFx世界中,所以当我在中断之后不得不做一个Web API项目时,我很困惑,直到看到这个答案。-很高兴认识这个事实-谢谢!!!
code4life

在VS 2915上工作@mihail我什么也没删除,只是创建虚拟目录...它需要什么?
abdoutelb 16/09/21

4
@AbdouTelb可以通过删除.config文件来检查iis.net/learn/get-started/planning-your-iis-architecture/…,基本上可以确保该文件将由vs重新创建,并因此避免与之相关的任何问题(以及可以有很多)会消失。IIS Express使用此文件的方式与IIS使用其自己的applicationhost.config文件的方式相同,因此与还原出厂默认设置相同。仅创建虚拟目录不足以消除可能隐藏在文件中的任何问题。就您而言,您很幸运:)
Mihail Shishkov

85

@roblll说得对。但是对于那些不想挖掘答案的人来说,这里是:

  1. 关闭Visual Studio(可能没有必要,但这不会造成伤害)。
  2. 导航到“文档”文件夹。这是我的IISExpress配置目录所在的位置。
  3. 在config文件夹中,有一个名为应用程序主机的文件。打开那个
  4. 搜索您的项目的名称。在以前的尝试中遭到轰炸时,Visual Studio应该已经在其中添加了它。
  5. 请注意,HTTP与您打算用于https的端口存在绑定。

    //Change this:
    <binding protocol="http" bindingInformation="*:44300:localhost" />
    
    //to this:
    <binding protocol="https" bindingInformation="*:44300:localhost" />
    

请记住,Visual Studio可能提供了与您预期不同的端口。只需确保绑定中的端口与项目属性的“ Web”选项卡中的端口相对应即可。

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx


5
我实际上是在打开在其他地方开发的项目,将项目的协议配置更改为https并重新加载项目,从而消除了错误。谢谢@雅各布!
2014年

仅删除IISExpress文件夹无法解决我的问题。删除后,当我重新启动VS并打开该项目时,出现一个错误对话框,仅在执行此操作后才能解决。我在asp.net的页面上下载的那个项目,它是一个示例项目。
Alisson

顺便说一句,如果您同时具有http和https绑定,请确保您在两个绑定上均未使用相同的端口号。
Ziad Akiki

41

我遇到了同样的问题,但是对我有用的解决方案却不同。

  1. 在VS2013中打开调试> {YourWebsiteName}属性
  2. 选择“ Web”标签。
  3. 在“服务器”下,我发现“覆盖应用程序根URL”已选中。我取消选中并保存。

这就是我让一切运行所需的一切。


我建议您先尝试此解决方案。勾选带有无效网址的框将产生问题中提到的错误。
蒂莫西

16

同样的问题,但需要以Admin模式启动VS2013 。


不幸的是,这并没有帮助我。
啊。

16

请尝试以下步骤:

  1. 删除IISExpress文件夹,如@Yehuda Shapira所说
  2. 重新启动电脑
  3. 删除项目中的.vs文件夹

祝你好运!


1
1.关闭Visual Studio 2.删除对我有用的.vs文件夹。如果在VS打开时删除.vs dolder。这没用。
akdora

对我来说,删除.vs文件夹是唯一的事情。.vs文件夹位于项目文件夹内,但默认情况下处于隐藏状态。
乔治

15

我遇到了同样的问题,然后打开任务管理器->进程,然后杀死了iisexpress.exe进程。之后,我尝试运行该应用程序并能够成功运行它



12

我也遇到了同样的问题,这要感谢@Jacob提供了有关它的信息。

原因是-您在位于以下位置的配置文件applicationhost中的项目输入错误

C:\Users\(yourusername)\Documents\IISExpress\config 
  1. 关闭所有Visual Studio解决方案。
  2. 将IISExpress文件夹重命名为某些IISExpress-Copy(代替删除,您可以拥有它的副本)
  3. 现在再次打开VS并构建/调试项目,现在您将看到再次使用正确的配置为您创建的IISExpress文件夹。

它对我有用,希望它也对您有用。


我尝试了其他答案中概述的步骤,但这对我有用。我不得不重命名IISExpress文件夹。删除它对我不起作用。
webworm

对我不起作用。一切始于我弄乱https
Toolkit

9

我遇到了同样的问题,原因是在“属性-> Web”下设置了“覆盖应用程序根URL”标志。删除该标志后,IIS Express可以从定义的端口正常启动。


8

似乎您需要像使用SSL一样进行一些配置。这是Scott Hanselman本人的分步指南


@Roblll,当我在VS 2012中右键单击我的MVC项目时,我没有看到“使用IIS Express”选项,在VS 2010中看到了。我尝试在属性窗口中为该解决方案启用SSL,它说属性无效。而且,在applicationhost.config文件中,我看到了多个应用程序条目,例如Webapplication(1),Webapplication(2),Webapplication(3)
DotnetSparrow 2013年

我遇到了同样的问题,并通过以管理员身份运行VS2012来克服了它(stackoverflow.com/a/13682315)。我对该解决方案不太满意,但找不到其他解决方案。
brudert

在我的项目中,我注意到SSL和非SSL使用了相同的端口号。所以我解决了这个错误,错误消失了。
orad 2016年

5

对我而言唯一有效的解决方案是创建另一个测试项目。然后执行以下步骤:

  1. 右键单击该项目,然后转到“属性”->“ Web”

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

  3. 导航到给出此错误的项目。右键单击该项目,然后转到“属性”->“ Web”。

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

  5. 删除测试项目,然后运行给出错误的项目。在那之后工作...

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


我现在真的不是我对解决方案所做的一切,但这也是我可以解决的唯一方法。我什至尝试弄乱了netsh命令,删除了IISExpress文件夹,以Admin模式启动VS,没有其他办法。我不知道将url:port映射到何处,但采用其他人的项目URL似乎是我唯一的解决方案。
塞尔吉奥A.15年


4

就我而言,在我允许IIS Express网站发出外部请求并将Windows防火墙配置为允许iisexpress.exe之后,无法从Visual Studio 2013中启动它。我仍然可以使用命令行启动它,并且它可以在本地和外部使用要求很好。

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

在VS工作之后,我尝试创建防火墙规则以允许我的端口。


3

我在VS 2013上遇到了同样的问题,即使在所有可能的尝试后它都无法正常工作,但我的问题已通过以下方法解决:

- In control panel (Program and Features) I found that all of the IIS related features were unchecked.I finally checked all of those and restarted my system.
- Then I started my VS 2013 as administrator and thats it everything
   worked fine then.

至少您可以尝试一下,因为它对我有用。


3

在网上搜索了两个小时后,我发现了以下解决方案-关闭Visual Studio-删除项目的.vs文件夹-打开Visual Studio并重新运行项目

那对我来说工作很开心


2

我们的网站也有同样的问题。我们能够在Visual Studio中修复所有问题。我们正在使用2012 Ultimate。

我们看到的根本问题是,启用SSL后,由于某种原因,VS为标准和安全URL分配了相同的端口。当我们从TFS中提取代码时,似乎会出现此问题。

为了解决这个问题,我们采取了以下步骤:

  1. 右键单击该项目,然后转到“ 属性” ->“ Web”
  2. 在“ 使用本地IIS Web服务器”部分的项目URL下,从URL中删除“ s”并保存。(例如,从https:// :44301转到http://:44301。这将允许下一步工作)
  3. 在解决方案资源管理器中,选择“项目”,然后在“属性”窗口中(如果未显示,请按F4键)将“已启用S​​SL”更改为False,然后返回至True。它将生成一个与标准URL不同的新端口(在我的情况下,我的SSL为44301,标准为44305)
  4. 导航回“属性”->“ Web”,然后将“ s”添加回项目URL。
  5. F5骑!

确保未选中“ 替代应用程序根URL ”复选框。


2

检查防病毒防火墙,并允许Visual Studio访问网络。例如在nod32中:

goto setting (f5) -> network->personal firewall->rules and zones

在“ zone and rule editor”中单击“ setup”,然后找到vs 2010or 12或...,并允许访问网络。



2

我今天遇到了这个错误。运行Win 8.1和VS2013。突然我的项目无法运行,我收到消息“无法启动IIS Express Web服务器”,并且没有更多信息。

一段时间后,我发现IIS Express无法启动的所有项目都在运行.net 3.5。运行更高版本的项目确实可以开始。

对我来说,解决方案是删除.net 3.5(从控制面板->打开/关闭Windows功能),重新启动Windows,然后再次添加.net 3.5。


2

我遇到了同样的问题,就我而言,我只是清理然后重建解决方案,它对我有用


2

好吧,上述所有步骤都不适合我。就我而言,我的applicationhost.config文件以某种方式缺少以下两行代码

 <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
    <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />

希望这可以帮助一些人。


2

在尝试任何其他操作之前,请确保1.重新启动Visual Studio(主要用于刷新文件中的内存驻留选项)和2.重新启动系统(主要用于无效文件锁定)。如果您的问题是这样的临时性问题或自我解决的问题,那么这些问题将不会改变。PC重新启动对我有用。另外,如果您从事的是多用户项目,请确保您拥有最新的可用版本-可能有人错误地在项目文件中检入了一些无效的东西,例如项目文件,并且您无缘无故搞乱了系统。如果这些方法不起作用,那么您可能需要更改一些卡住,丢失或需要修改的设置-其他答案还有很多主张。


1

从VS2012运行解决方案时,我遇到了类似的问题:

Unable to launch the IIS Express Web server.  
The start URL specified is not valid. https://localhost:44301/

我选择了不正确的项目作为“启动项目”。我将Cloud项目设置为Startup(右键单击项目->设置为Startup Project),一切开始正常运行。


还应该添加启动URL,或者至少将其设置为“当前页面”或“特定页面”。我的被​​设置为“不打开页面。等待来自外部应用程序的请求”,除启动项目问题外,我还遇到了此错误。
vapcguy 2015年

@Moumit对此投了反对票吗?你能解释一下你的评论吗?
scottndecker 2015年

1

Jason的Shavers系列文章(http://jasonrshaver.com/?tag=/Client+Certificates)确切解释了如何设置applicationhost.config站点条目,以允许该应用程序在ssl或标准http中运行。

他建议的一件事是为该站点放置两个绑定条目。这就是我所做的。

            <bindings>
                <binding protocol="http" bindingInformation="*:59945:localhost" />
                <binding protocol="https" bindingInformation="*:44300:localhost"/>
            </bindings>

他还建议也更改其他设置。它可以在我的三台机器中的两台上工作。每次我被告知要在应用程序主机中手动配置站点时,通常都与绑定有关。(示例为多个Web应用程序使用相同的端口。)


1

安装Visual Studio 2013 Update 3后,我遇到了相同的问题。
VS 2013 can not load Microsoft.VisualStudio.TraceLogPackage.dll
Unable to launch the IIS Express Web server

我的问题通过执行以下步骤解决:

1.修复Visual Studio 2013 Update 3
2. Developer Command Prompt以管理员身份启动。
3. devenv.exe /setup输入,然后按Enter


1

我遇到过同样的问题。我删除了C:/users/路径下的许多文件夹,以释放机器上的一些空间。之后,我开始收到此错误。

我只需要重新启动机器,一切都可以正常工作。


1

我的问题需要3种解决方案:

  1. 在文档文件夹中删除IISExpress文件夹。
  2. 通过右键单击该Web项目并将其设置为启动项目,然后选择“设置为启动项目”,或通过解决方案属性来进行设置。
  3. 设置启动URL,或设置为“当前页面”或“特定页面”。我的设置为“不打开页面。等待来自外部应用程序的请求”,我不得不将其更改为“特定页面”,我将其保留为空白,以便在进入应用程序主页之前工作。

1

当我查看IIS Express注册表项时,终于解决了我的问题:

HKEY_CURRENT_USER\Software\Microsoft\IISExpress

我有一个条目CustomUserHome指向“我的网站”,这造成了严重破坏。


1

我将在虚拟机上的计算机上设置Internet连接共享。我将其关闭,并能够在Visual Studio 2015中进行调试。但是,为了在重新启动后始终进行调试,即使我的Internet连接均未启用Internet连接共享,我也需要将Internet连接共享服务设置为手动启动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.