无法启动IIS Express Web服务器

时间:2013-04-08 07:03:14

标签: visual-studio iis iis-express

我有一个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服务器   支持安全通信。

     

确定帮助

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

 Unable to launch the IIS Express Web server.

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

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

请建议。


53 个答案:

答案 0 :(得分:340)

我有完全相同的问题 原因 - 糟糕的IIS配置文件。

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

别担心,VS应该再次创建 - 正确,这次 - 再次运行解决方案。


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

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

答案 1 :(得分:211)

如果使用VS2015或以上

确保iisexpress进程未运行。

确保没有其他进程正在使用您所需的端口。你可以通过执行来做到这一点 控制台中的netstat -a -b(以管理员身份,在开始菜单中输入cmd,右键单击并选择'作为推荐者运行')。

然后删除以下文件

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

请注意.vs文件夹可能隐藏

然后找到<<project-name>>.csproj.user文件,用文本编辑器打开它(记事本) 并确保IISUrl下的WebProjectProperties配置为<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.

然后转到{Project Properties} - &gt; Web并按&#34;创建虚拟目录&#34;按钮

enter image description here

答案 2 :(得分:82)

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

  1. 关闭Visual Studio(可能没有必要,但不会受到伤害)。
  2. 导航到“文档”文件夹。这是我的IISExpress配置目录。
  3. 在config文件夹中,有一个名为applicationhost的文件。打开那个。
  4. 搜索项目名称。它应该是在Visual Studio中添加的,当它在之前的尝试中被轰炸时。
  5. 请注意,http与您打算用于https的端口绑定。

    //Change this:
    <binding protocol="http" bindingInformation="*:44300:localhost" />
    
    //to this:
    <binding protocol="https" bindingInformation="*:44300:localhost" />
    
  6. 请记住,Visual Studio可能提供了与您预期不同的端口。只需确保绑定中的端口与项目属性的Web选项卡中的端口相对应。

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

答案 3 :(得分:40)

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

  1. 在VS2013中打开调试&gt; {YourWebsiteName}属性
  2. 选择“网络”标签。
  3. 在“服务器”下,我发现“覆盖应用程序根URL”已被选中。我取消选中并保存。
  4. 这就是我需要的所有东西。

答案 4 :(得分:16)

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

答案 5 :(得分:15)

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

答案 6 :(得分:14)

请尝试以下步骤:

  1. 删除 IISExpress 文件夹为@Yehuda Shapira说
  2. 重新启动计算机
  3. 删除项目
  4. 中的 .vs 文件夹

    祝你好运!

答案 7 :(得分:14)

在我的情况下,该项目位于网络驱动器,删除IIS Express文件夹并没有其他答案中所述的帮助。我的解决方法是将项目复制到本地驱动器,它工作正常!

答案 8 :(得分:12)

我有同样的问题,感谢@Jacob提供有关它的信息。

原因是 - 您的项目在位于

的配置文件 applicationhost 中输入错误
C:\Users\(yourusername)\Documents\IISExpress\config 
  1. 关闭所有Visual Studio解决方案。
  2. 将IISExpress文件夹重命名为某些IISExpress-Copy(而不是删除您可以拥有它的副本)
  3. 现在再次打开VS并构建/调试项目,现在您将看到再次为您创建IISExpress文件夹并进行正确配置。
  4. 它对我有用,并希望它也适合你。

答案 9 :(得分:9)

我有同样的问题,原因是在属性 - &gt;下设置了标志“覆盖应用程序根URL”。卷筒纸 删除标志后,IIS Express从定义的端口开始正常运行。

答案 10 :(得分:8)

您似乎需要进行一些配置,因为您似乎正在使用SSL;这是Scott Hanselman本人的分步指南:

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

答案 11 :(得分:5)

为未来的读者分享这个。手动创建虚拟目录为我工作。

  • 在解决方案资源管理器中选择项目
  • Alt + 输入
  • 转到网站部分
  • 单击“创建虚拟目录”

答案 12 :(得分:4)

对我有用的唯一解决方案是创建另一个测试项目。然后按照以下步骤操作:

  1. 右键单击该项目,然后转到属性 - &gt;网络

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

  3. 导航到发出此错误的项目。右键单击该项目,然后转到属性 - &gt;网络

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

  5. 删除测试项目并运行出错的项目。之后工作......

  6. 也许不是最好的方式,但这是我能让这个工作的唯一方法。我重新加载笔记本电脑(硬盘驱动器崩溃)后收到此错误消息,并从托管所在地的服务器获取了所有项目。

答案 13 :(得分:4)

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

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

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

答案 14 :(得分: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.

至少你可以尝试一下,因为它适用于我。

答案 15 :(得分:2)

我今天遇到了这个错误。运行Win 8.1和VS 2013.突然之间,我的项目无法运行,我收到消息“无法启动IIS Express Web服务器”,没有进一步的信息。

过了一会儿,我发现IIS Express无法启动的所有项目都在运行.net 3.5。运行更高版本的项目确实启动了。

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

答案 16 :(得分: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" />

希望这可以帮助一些人。

答案 17 :(得分:2)

禁用防火墙后,我能够毫无问题地运行它。

答案 18 :(得分:2)

检查防病毒防火墙并允许访问visual studio进行网络连接。 例如在nod32:

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

; zone and rule editor&#34;点击&#34; setup&#34;并找到vs 201012或...并允许访问网络。

答案 19 :(得分:1)

我的问题需要一个3倍的解决方案:

  1. 删除Documents文件夹中的IISExpress文件夹。
  2. 将Web项目设置为启动项目,方法是右键单击它并选择&#34;设置为启动项目&#34;,或通过解决方案属性执行此操作。
  3. 设置启动网址,或设置为&#34;当前页面&#34;或&#34;特定页面&#34;。我被设置为“不打开页面”。等待来自外部应用程序的请求&#34;我不得不将其更改为&#34;特定页面&#34;,我将其留空,以便它可以在我的应用程序的主页上运行。

答案 20 :(得分:1)

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

答案 21 :(得分: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应用程序使用相同的端口。)

答案 22 :(得分:1)

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

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

我选择了错误的项目作为启动项目。我将Cloud项目设置为Startup(右键单击项目 - &gt;设置为启动项目),一切正常。

答案 23 :(得分:1)

我在我的计算机上为虚拟机设置 Internet连接共享。我将其关闭,我可以在 Visual Studio 2015中调试。但是,要在重新启动后始终如一地进行调试,我需要将 Internet连接共享服务设置为手动启动,即使我的所有Internet连接都未启用 Internet连接共享。 / p>

答案 24 :(得分:1)

我们的网站遇到了同样的问题。我们能够在Visual Studio中修复这一切。我们正在使用2012 Ultimate。

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

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

  1. 右键单击该项目,然后转到属性 - &gt; 网络
  2. 使用本地IIS Web服务器 部分的项目URL下,从URL中删除“s”并保存。 (例如,从https:// :44301转到http:// :44301。这将允许下一步工作)
  3. 在解决方案资源管理器中,选择项目并在“属性”窗口中(如果未显示则按F4键)将 启用SSL 更改为错误然后返回到。它将生成一个与标准URL不同的新端口(在我的情况下,我有44301作为我的SSL,44305作为我的标准)
  4. 导航回属性 - &gt; Web并将“s”添加回项目URL。
  5. F5和骑!
  6. 确保未选中 覆盖应用程序根URL 的复选框。

答案 25 :(得分:1)

当我查看IIS Express注册表项时,我的问题最终得以解决:

HKEY_CURRENT_USER\Software\Microsoft\IISExpress

我有一个条目CustomUserHome指向我的网站,这导致了严重破坏。

答案 26 :(得分: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

答案 27 :(得分:1)

就我而言,删除该绑定后,我在 applicationHost.config 文件上添加了新的站点绑定,它可以正常工作。 applicationHost.config路径位于.VS(隐藏)文件夹中的项目根目录中

答案 28 :(得分:1)

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

我只需要重新启动机器,一切正常。

答案 29 :(得分:0)

重启计算机是唯一对我有用的方法。经典101 IT:)

答案 30 :(得分:0)

我有类似的问题-由于该错误,VS无法加载特定的Web项目。 这是有帮助的:

  • 在解决方案中编辑项目
  • 寻找UseIISExpress和/或UseIIS 部分,并确保它们彼此不相交。

在我的情况下是这样的:

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

因此,我将其更改为:

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

然后有效。

答案 31 :(得分:0)

我阅读了本文的所有答案,然后,如Mihail Shishkov答案中所述,跳到“项目属性”>“ Web”>“服务器”>“创建虚拟目录”。这具有使我特例的效果:

无法启动IIS Express Web服务器。 指定的起始URL无效。 http://localhost:44300/

答案 32 :(得分:0)

在我的PC上运行XAMPP的Apache服务器后,我也遇到了这个问题。为了运行它,我通过在管理员命令提示符下写入net stop http杀死了8086端口上的所有进程。我认为终止进程对我来说是个问题。

对我来说,执行以下步骤即可解决此问题;

  1. 关闭Visual Studio和SQL Management Studio。
  2. 转到服务并启动除SQL Server Agent (SQLEXPRESS)以外的所有SQL服务。
  3. 转到C:\Users\<your pc name>\Documentsdeleting IISExpress folder
  4. 重新启动PC。 (我在上面找不到的新事物)
  5. 启动Visual Studio并运行程序。

答案 33 :(得分: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>

答案 34 :(得分:0)

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

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

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

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

  3. 添加值为1的_CSRUN_DISABLE_WORKAROUNDS环境系统变量,如以下屏幕截图所示(感谢Juan M. Elosegui在此SO线程和图像上报告此情况):

enter image description here

祝你好运!

答案 35 :(得分:0)

我遇到了同样的问题。请按照以下步骤操作:

1-在Documents \ IISExpress \ config中打开applicationhost文件,如果不存在,请添加以下代码

            <site name="solutionname" id="2">
                <application path="/" applicationPool="solutionname">
                    <virtualDirectory path="/" physicalPath="physicaladdressofproject" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:xxxx:localhost" />
                </bindings>
            </site>

2-然后转到项目的根文件,并使用不同版本的Visual Stdio删除项目上的所有更新

3-下一步转到[root] .vs \ config并删除applicationhost 它会自动创建

4-运行项目

对我有用。

答案 36 :(得分: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> 

答案 37 :(得分:0)

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

那对我有用,很开心

答案 38 :(得分:0)

对于 dotnet core 中的 2021 解决方案,您可以通过在解决方案资源管理器中右键单击项目并选择“编辑项目文件”来修复此错误。

在调试选项卡的底部,您可以直接配置所需的端口以及是否使用 SSL。

enter image description here

此处的更改需要使用 Control+S 保存。完成后,您可以启动项目并确认它解决了您的问题,无需删除 IISFolders 或此处建议的任何其他内容。

答案 39 :(得分:0)

除了@Yehuda Shapira给出的答案之外,我还得进行另一项更改,即删除.csproj.user文件,其中的绑定信息如

personal_
存储

。删除文件关闭visual Studio,然后重建。希望这有帮助。

答案 40 :(得分:0)

删除IISExpress文件夹中的内容,然后关闭并打开visual studio。并再次运行。应该没问题。

或更改端口号

答案 41 :(得分:0)

我在管理员打开后关闭防火墙之后也遇到了这个问题,经过仔细检查后所有设置都是正确的。

我的问题很独特,因为我想在本地测试SSL,但也可以通过LAN获得服务。所以我更改了应用程序URL以使用本地IP aka。在我的情况下是192.168.1.10。

切换回localhost解决了问题,关闭了SSL,因此我发现本地SSL证书仅适用于localhost。

答案 42 :(得分:0)

我有同样的问题。我通过更改项目属性中的端口号来解决它。我将端口号50624更改为50625。

enter image description here

答案 43 :(得分:0)

我最近遇到了这个问题,原因是该项目存储在网络驱动器上。由于IIS本地作为NetworkService运行,因此它无法访问存储项目的网络共享。假设从网络共享打开项目是违反最佳实践的,我将项目复制到本地C:\驱动器,然后项目按预期运行。

答案 44 :(得分:0)

我的解决方案是从IIS Express切换到本地IIS。 Solution properties 确保您的虚拟目录绑定到同一端口。

答案 45 :(得分:0)

其他解决方案都不适合我。我禁用了编辑和继续,一切都很好:)

答案 46 :(得分:0)

一直在搞乱IISExpress和Project试图让它听到与localhost不同的URL,当回复时我遇到了这个错误,并且在完成所有答案之后,没有一个能够工作。

最终注意到项目中的Porperties - &gt;网络我已经开始使用网址&#39;在“开始操作”下检查,但输入框为空。将其更改为“当前页面”&#39;解决了我的问题。

答案 47 :(得分:0)

无需删除目录C:\ Users [you] \ Documents \ IISExpress中的整个IISExpress文件夹。

只需评论:

<binding protocol="https" bindingInformation="*:8090:localhost" />

在IISExpress文件夹中的applicationhost.config文件中。

答案 48 :(得分:0)

在我的情况下,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. 找到配置部分
  4. 更正对&#34; v4.030319&#34;的任何引用阅读&#34; v4.0.30319&#34;
  5. Visual Studio在下次调试Web应用程序时成功启动了IIS Express。

答案 49 :(得分:0)

请浏览快照,我遇到了同样的错误,但以下设置解决了它

  1. 选择当前页面为开始操作

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

  3. 应取消选中NTLM选项

答案 50 :(得分:0)

我有同样的问题,在我的情况下我只是清理然后重建我的解决方案,它对我有用

答案 51 :(得分:-1)

就我而言,我去了Debug&gt;项目属性&gt; Web(在visual studio中)然后我将IIS Express更改为服务器部分中的本地IIS

答案 52 :(得分:-4)

首先删除目录中存在的文件IISEXPRESS,然后开始调试。

如果这不能解决问题,请转到您的项目( Ctrl + Alt + L )。右键单击 - &gt;属性 - &gt;调试并检查“启用Windows身份验证”