337

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

微软视觉工作室

为 ASP.NET 4.5配置 Webhttps://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 调试/运行网站?

请建议。


4

54 回答 54

414

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

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

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


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

rmdir /s /q "%userprofile%\Documents\IISExpress"
于 2013-06-11T07:13:38.093 回答
245

如果使用VS2015或以上

确保 iisexpress 进程未运行。

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

netstat -a -b

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

然后删除以下文件

<<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} -> Web 并按“创建虚拟目录”按钮

在此处输入图像描述

于 2016-03-04T15:29:27.553 回答
84

@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

于 2013-07-16T23:45:12.100 回答
42

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

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

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

于 2014-03-25T12:28:08.050 回答
21

尝试以下步骤:

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

祝你好运!

于 2017-09-07T02:30:19.420 回答
17

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

于 2015-04-07T17:31:54.340 回答
15

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

于 2014-01-15T11:25:16.323 回答
14

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

于 2015-07-22T01:05:11.313 回答
13

I had the same problem, thanks to @Jacob for giving information about it.

The Reason is - wrong entry for your project in config file applicationhost located at

C:\Users\(yourusername)\Documents\IISExpress\config 
  1. Close all Visual Studio solutions.
  2. Rename IISExpress folder to some IISExpress-Copy (instead of deleting you can have a copy of it)
  3. Now open VS again and build/debug the project, now you would see IISExpress folder created for you again with correct configuration.

It worked for me and hope it should work for you also.

于 2014-05-06T09:11:27.710 回答
10

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

于 2014-01-21T17:58:19.900 回答
8

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

于 2013-04-08T07:09:05.580 回答
6

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

  1. 右键单击项目并转到属性-> Web

  2. 在 Use Local IIS Web Server 部分的项目 URL 下,复制项目 URL(http://localhost:59002/) - 这是来自测试项目。

  3. 导航到出现此错误的项目。右键单击项目并转到属性-> Web。

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

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

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

于 2014-10-08T09:41:50.747 回答
5

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

  • 在解决方案资源管理器中选择项目
  • Alt+Enter
  • 转到网页部分
  • 单击创建虚拟目录
于 2015-12-08T16:34:04.577 回答
4

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

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

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

于 2013-12-20T09:38:18.600 回答
3

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

于 2013-12-16T12:21:17.330 回答
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.

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

于 2014-10-09T12:20:14.423 回答
3

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

那是我的工作,玩得开心

于 2019-01-10T09:02:53.740 回答
2

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

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

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

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

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

于 2014-08-11T14:59:59.337 回答
2

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

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

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

于 2015-02-12T12:07:49.210 回答
2

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

于 2015-04-14T11:34:23.743 回答
2

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

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

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

于 2015-06-08T14:44:07.750 回答
2
  1. 关闭 Visual Studio 的所有实例。
  2. 打开任务管理器。
  3. 结束所有活动的 IIS 进程。
  4. 重新启动 Visual Studio。
于 2020-05-08T15:37:25.190 回答
2

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

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

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

于 2018-05-20T18:59:52.433 回答
2

Before you try anything else, make sure you 1. restart visual studio (mostly for refreshing memory resident options from files) and 2. restart your system (mostly for invalid file locking). If your problem is such temporary or self-fixed those will do without changing anything. It worked for me with PC restart. Also if you work on a multi-user project make sure you have the latest workable version - someone else may had check in something invalid by mistake at e.g. the project file and you mess with your system for no reason. If those won't work, then you probably need to alter some setting(s) that are stuck, missing or need modification - there are plenty propositions on other answers.

于 2018-09-11T09:26:17.140 回答
2

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

  • 在解决方案中编辑项目
  • 查找UseIISExpress和/或UseIIS 部分并确保它们不会相互交叉。

就我而言,它是这样的:

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

因此,我将其更改为:

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

然后它起作用了。

于 2019-12-11T14:22:41.793 回答
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" />

希望这可以帮助一些人。

于 2016-08-24T15:06:19.157 回答
1

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

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

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

于 2013-09-06T18:40:42.757 回答
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输入然后回车

于 2014-08-29T15:13:43.113 回答
1

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

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

于 2015-03-04T11:39:14.397 回答
1

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 应用程序使用相同的端口。)

于 2014-03-26T21:08:58.483 回答
1

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

  1. 删除 Documents 文件夹中的 IISExpress 文件夹。
  2. 通过右键单击它并选择“设置为启动项目”或通过解决方案属性将 Web 项目设置为您的启动项目。
  3. 设置启动 URL,或设置为“当前页面”或“特定页面”。我的设置为“不要打开页面。等待来自外部应用程序的请求”,我不得不将其更改为“特定页面”,我将其留空,以便它将转到我的应用程序的主页,然后它会工作。
于 2015-03-18T02:13:39.697 回答
1

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

对我来说,执行以下步骤后,这个问题就解决了;

  1. 关闭 Visual Studio 和 SQL Management Studio。
  2. 转到服务并启动所有 SQL 服务,除了SQL Server Agent (SQLEXPRESS).
  3. C:\Users\<your pc name>\Documents删除 IISExpress 文件夹
  4. 重启电脑。(我在上面没有找到的新待办事项)
  5. 启动 Visual Studio 并运行程序。
于 2020-07-17T14:02:57.557 回答
1

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

于 2020-02-13T10:57:37.557 回答
1

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

于 2016-01-04T10:35:04.950 回答
1

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

HKEY_CURRENT_USER\Software\Microsoft\IISExpress

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

于 2015-09-16T13:23:48.370 回答
0

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

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

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

  3. 应取消选中 NTLM 选项

于 2015-02-07T13:38:56.287 回答
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. 将所有对“v4.030319”的引用更正为“v4.0.30319”

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

于 2015-06-19T16:26:41.573 回答
0

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

于 2017-01-04T14:41:39.400 回答
0

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

于 2019-12-13T09:38:16.987 回答
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 线程和图像上报告此问题):

在此处输入图像描述

祝你好运 !

于 2019-07-22T17:46:22.390 回答
0

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

只是评论:

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

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

于 2015-11-04T07:02:44.353 回答
0

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

在此处输入图像描述

于 2017-08-11T09:01:51.600 回答
0

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

于 2017-06-15T03:21:56.200 回答
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-运行项目

它对我有用。

于 2019-04-18T04:03:58.040 回答
0

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

或更改端口号

于 2018-03-02T00:42:47.470 回答
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> 
于 2019-03-12T19:35:38.133 回答
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>
于 2019-09-09T10:04:57.383 回答
0

一直在搞乱 IISExpress 和 Project,试图让它在与 localhost 不同的 URL 上侦听,当恢复时我遇到了这个错误,在按照这里的所有答案之后,他们都没有工作。

最终注意到,在项目 Porperties -> Web 中,我在 Start Action 下选中了“Start URL”,但输入框为空。将此更改为“当前页面”解决了我的问题。

于 2016-08-26T12:45:27.660 回答
0

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

于 2017-05-18T10:35:34.393 回答
0

我也有这个问题,关闭防火墙后,以管理员身份打开后,仔细检查所有设置是否正确。

我的问题是独一无二的,因为我想在本地测试 SSL,但也要通过 LAN 提供服务。因此,我将应用程序 URL 更改为使用本地 IP。就我而言,是 192.168.1.10。

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

于 2017-09-18T05:08:32.637 回答
0

我阅读了此处的所有答案,然后,如 Mihail Shishkov 回答中所述,跳转到项目属性 > Web > 服务器 > 创建虚拟目录。这使我受到了例外的影响:

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

于 2020-01-14T16:02:29.097 回答
0

For a 2021 Solution in dotnet core, you can fix this error by right-clicking the project in Solution Explorer, and choosing 'Edit Project File'.

On the Debug Tab, at the bottom, you can directly configure the desired port and whether to use SSL or not.

enter image description here

Changes here need to be saved with Control+S. Once that's done, you can launch the project and confirm it fixed your issue, no having to delete IISFolders or anything else suggested here.

于 2021-02-05T15:57:39.903 回答
-1

就我而言,我去了调试>项目属性> Web(在Visual Studio中),然后我在服务器部分将IIS Express更改为本地IIS

于 2014-08-01T22:14:55.457 回答
-4

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

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

于 2015-12-14T21:01:29.457 回答