ChatGPT解决这个技术问题 Extra ChatGPT

无法启动 IIS Express Web 服务器

我有一个 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 调试/运行网站?

请建议。

错误消息非常清楚地说明出了什么问题: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 自己的分步指南!
@Robel,我看到在站点的属性中,在应用程序选项卡下,目标框架是 4.5,在 Web 选项卡中,开始操作是当前页面。我应该将项目网址更改为 localhost:44300 吗?我正在使用 IIS Express 8
这是防火墙设置:(
我能够通过以下方式解决这个问题 - 1)Visual Studio - 选项 - > 搜索 - IIS 2)选中“为网站和项目使用 64 位版本的 IIS Express”。
我认为这会有所帮助 stackoverflow.com/a/54222339/2923956

Y
Yehuda Shapira

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

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

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

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

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

这对我有用。即使在卸载并重新安装 IIS Express 8 之后,它也保留了相同的配置文件,所以我的问题仍然存在。我将 IISExpress 文件夹重命名为其他文件夹,并使用干净版本的配置文件创建了一个新文件夹。
@CoreyOgburn 应该在 Documents 文件夹和 IISExpress 下(即 C:\Users\Corey\Documents\IISExpress\Config)并删除 config 文件夹。我有同样的问题,但这并没有为我解决。
谢谢。只是不要忘记关闭然后重新打开 VS 以重新配置 IIS Express。
@crokusek 有 VS2015 Update 3 的答案。导航到解决方案目录中的“.vs\config”文件夹并删除那里的“applicationhost.config”文件。
尝试删除项目中的.vs文件夹如果有人这样做后仍然没有工作并重新启动计算机,
M
Mihail Shishkov

如果使用VS2015或以上

确保 iisexpress 进程未运行。

确保没有其他进程正在使用您所需的端口。你可以通过执行来做到这一点

netstat -a -b

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

然后删除以下文件

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

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

然后找到 <<project-name>>.csproj.user 文件,使用文本编辑器(记事本)打开它,并确保 WebProjectProperties 下的 IISUrl 配置为 <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} -> Web 并按“创建虚拟目录”按钮

https://i.stack.imgur.com/BQNrn.png


这在 VS2015 上完美运行。在 .NET 核心解决方案中创建旧 Web 应用程序项目后发生问题。
这行得通,.NET 核心工具把 IISE 弄得一团糟:/
我通常生活在 OWIN/NancyFx 世界中,所以当我不得不在中断后做一个 Web API 项目时,我很困惑,直到我看到了这个答案。 - 很高兴知道这个事实 - 谢谢!!!
在VS 2915上工作@mihail我没有删除任何东西,只是创建虚拟目录......它需要什么?
@AbdouTelb 通过删除 .config 文件来检查iis.net/learn/get-started/planning-your-iis-architecture/…,您基本上可以确保该文件将由 vs 重新创建,因此与之相关的任何问题(可能有很多问题)都会消失。 IIS Express 使用此文件的方式与 IIS 使用其自己的 applicationhost.config 文件的方式相同,因此与恢复出厂默认设置相同。单独创建虚拟目录不足以消除可能隐藏在文件中的任何问题。在你的情况下,你很幸运:)
H
Hp_issei

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

关闭 Visual Studio(可能没有必要,但不会有什么坏处)。导航到您的文档文件夹。这是我的 IISExpress 配置目录所在的位置。在 config 文件夹中,有一个名为应用程序主机的文件。打开那个。搜索您的项目名称。当它在您之前的尝试中被轰炸时,它应该由 Visual Studio 添加到那里。请注意,HTTP 与您打算用于 https 的端口绑定。 //改变这个: //改为这个:

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

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


我实际上是在打开一个在其他地方开发的项目,将项目的协议配置更改为 https 并重新加载项目摆脱了错误。谢谢@雅各布!
仅删除 IISExpress 文件夹并不能解决我的问题。删除后,当我重新启动VS并打开这个项目时,出现了一个错误对话框,这样做后才解决。我在 asp.net 的页面上下载的那个项目,它是一个示例项目。
顺便说一句,如果您同时具有 http 和 https 绑定,请确保您没有在它们上使用相同的端口号。
T
The Red Pea

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

在 VS2013 中打开 Debug > {YourWebsiteName} Properties 选择“Web”选项卡。在“服务器”下,我发现“覆盖应用程序根 URL”已被选中。我取消选中并保存。

这就是我让事情运转起来所需要的一切。


我建议您先尝试此解决方案。勾选带有无效 url 的框将产生问题中提到的错误。
使用 VS 2019,检查了我使用“覆盖应用程序根 URL”的站点之一。 " 不会运行,但使用相同模式的其他人会运行正常。尝试禁用该选项,故障站点开始工作。
s
sknight

尝试以下步骤:

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

祝你好运!


1.关闭 Visual Studio 2.删除对我有用的 .vs 文件夹。如果我在 VS 打开时删除 .vs dolder。这没用。
删除 .vs 文件夹是唯一对我有用的东西。 .vs 文件夹位于项目文件夹内,但默认情况下它是隐藏的。
m
mat

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


不幸的是,这对我没有帮助。
然而,为什么?它工作正常,无需进入文件夹运行 devenv.exe 以管理员身份运行。现在我必须以管理员身份运行 devenv.exe。
也许某些更新是使用管理员权限安装的,从那时起,如果没有管理员权限,它就无法工作了。
V
Vinu

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


A
Amir Chatrbahr

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


s
splattne

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

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

C:\Users\(yourusername)\Documents\IISExpress\config 

关闭所有 Visual Studio 解决方案。将 IISExpress 文件夹重命名为某个 IISExpress-Copy (而不是删除,您可以拥有它的副本) 现在再次打开 VS 并构建/调试项目,现在您将看到再次为您创建的 IISExpress 文件夹并具有正确的配置。

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


我尝试了其他答案中概述的步骤,但这是对我有用的步骤。我不得不重命名 IISExpress 文件夹。删除它对我不起作用。
对我不起作用。一切都是从我弄乱 https 开始的
A
ArgisIsland

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


c
charlesreid1

您似乎需要进行一些配置,因为您似乎正在使用 SSL;这是step-by-step guide by Scott Hanselman本人。


@Roblll,当我在 VS 2012 中右键单击我的 MVC 项目时,我没有看到使用 IIS Express 选项,我在 VS 2010 中看到了。我尝试在属性窗口中为解决方案启用 SSL,它说属性无效。此外,在 applicationhost.config 文件中,我看到我的应用程序的多个条目,例如 Webapplication(1)、Webapplication(2)、Webapplication(3)
我遇到了同样的问题,并通过以管理员身份运行 VS2012 (stackoverflow.com/a/13682315) 来克服它。我对那个解决方案不太满意,但我找不到其他解决方案。
在我的项目中,我注意到 SSL 和非 SSL 使用了相同的端口号。所以我解决了这个问题,错误就消失了。
s
splattne

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

右键单击项目并转到 Properties -> Web 在 Use Local IIS Web Server 部分的项目 URL 下,复制项目 URL(http://localhost:59002/) - 这是来自测试项目。导航到出现此错误的项目。右键单击项目并转到属性-> Web。将项目 URL 粘贴到使用本地 IIS Web 服务器部分(从测试项目复制的 URL)。关闭测试项目并保存。删除测试项目并运行给出错误的项目。之后工作...

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


我现在真的不知道我对我的解决方案做了什么,但这是我可以修复它的唯一方法。我什至尝试弄乱 netsh 命令,删除 IISExpress 文件夹,以管理员模式启动 VS,但没有其他任何工作。我不知道 url:port get 映射在哪里,但获取其他项目的 URL 似乎是我唯一的解决方案。
x
xameeramir

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

在解决方案资源管理器中选择项目

按 Alt + Enter

转到网页部分

单击创建虚拟目录


A
Ali Sadri

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

那是我的工作,玩得开心


d
deerchao

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

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

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


S
Saroj

我在 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.

至少你可以试一试,因为它对我有用。


x
xameeramir

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


W
Witcher

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

在解决方案中编辑项目

查找 UseIISExpress 和/或 UseIIS 部分并确保它们不会相互交叉。

就我而言,它是这样的:

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

因此,我将其更改为:

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

然后它起作用了。


哇哇哇。这解决了我已经研究了 2 多天的问题。谢谢你!在我的情况下奇怪的是,该用户已将两个设置都更改为“true”的每个项目(75+)。我想知道这是怎么发生的——还有,有没有办法以编程方式改变所有项目?或者是否有一个视觉工作室设置搞砸了?
D
DMur

关闭 Visual Studio 的所有实例。打开任务管理器。结束所有活动的 IIS 进程。重新启动 Visual Studio。


J
JimmyV

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

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

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

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

确保未选中覆盖应用程序根 URL 的复选框。


A
Amit Joki

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

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

在“zone and rule editor”中点击“setup”并找到vs 201012或...并允许访问网络。


l
luk2302

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


f
fefferoni

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

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

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


G
Giles Roberts

我会在我的机器上为虚拟机设置 Internet 连接共享。我将其关闭,并且能够在 Visual Studio 2015 中进行调试。但是,为了在重新启动后持续调试,我需要将 Internet 连接共享服务设置为手动启动,即使我的 Internet 连接都没有启用 Internet 连接共享。


A
Anshuman Jasrotia

好吧,上述步骤都不适合我。在我的情况下,我的 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" />

希望这可以帮助一些人。


D
Debashish Saha

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

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

已存储。删除该文件关闭 Visual Studio,然后重建。希望这会有所帮助。


S
Stefanos Zilellis

在尝试其他任何操作之前,请确保 1. 重新启动 Visual Studio(主要用于从文件刷新内存驻留选项)和 2. 重新启动系统(主要用于无效文件锁定)。如果您的问题是暂时的或自行解决的,那么这些都不会改变任何东西。它适用于我的电脑重启。此外,如果您从事多用户项目,请确保您拥有最新的可用版本 - 其他人可能在项目文件中错误地签入了无效的内容,并且您无缘无故地弄乱了您的系统。如果这些不起作用,那么您可能需要更改一些卡住、丢失或需要修改的设置——其他答案有很多建议。


A
Ali Sadri

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


几天前尝试使用LAN(192.168 ...)的applicationUrl。后来我更改了 .json 文件中的所有 url,但仍然在从 VS 启动的 IIS Express 上收到错误。在 applicationHost.config 我发现 与提到的 url,删除它解决了这个问题。
S
Scott Decker

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

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

我选择了错误的项目作为启动项目。我将云项目设为启动(右键单击项目-> 设置为启动项目),一切都开始正常工作。


还应该添加启动 URL 需要设置,或设置为“当前页面”或“特定页面”——至少选中。我的设置为“不要打开页面。等待来自外部应用程序的请求”,除了启动项目问题之外,我还遇到了这个错误。
@Moumit 你投反对票了吗?你能解释一下你的评论吗?
u
user1161391

Jason 在此处的剃须刀系列文章 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 应用程序使用相同的端口。)