58

当我尝试从 Visual Studio 启动 IIS Express 并使用配置为侦听 localhost 以外的地址的项目时收到此错误。Visual Studio 在给出错误“无法启动 IIS Express Web 服务器”之前冻结大约 30 秒。

我已经尝试了发布到类似问题的所有解决方案,并且我认为我做的一切都是正确的。以下是我已采取的步骤:

  1. 将以下预留添加到 HTTP.SYS:

    netsh http add urlacl url=http://+:36899/ user=Everyone

  2. 以管理员身份运行 Visual Studio 2012(从技术上讲,我认为我什至不必这样做,因为我手动设置了 HTTP.SYS)。

  3. 禁用 Windows 防火墙。

  4. 删除 My Documents 文件夹中的 IISExpress 文件夹以确保默认设置。

  5. 允许 Visual Studio 在 applicationhost.config 中为我的 Web 项目创建条目。然后手动编辑配置文件以更改localhost192.168.0.100我的本地 IP。然后回到 Visual Studio 中的项目属性并将 localhost 更改为 IP 并保存项目,以便我的项目现在设置为http://192.168.0.100:36899.

我还尝试更改端口并重复上述步骤,以防端口因某种原因被使用。

我想让我的 IIS Express 开发人员实例可以从 Internet 上的 IP 访问以进行远程测试。

4

27 回答 27

61

如果使用VS2015,请关闭解决方案,删除以下文件,然后重新打开解决方案。

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

注意 .vs 文件夹可能是隐藏的

于 2016-09-28T07:32:50.190 回答
51

为我解决此问题的一件事是<bindings>在文件中我的站点部分中使用以下行applicationhost.config

<bindings>
    <binding protocol="http" bindingInformation="*:8099:" />
</bindings>

关键是简单地删除本地主机。不要用星号替换它,不要用 IP 或计算机名称替换它。冒号后留空即可。

这样做之后,我就不需要以管理员身份运行Visual Studio,我可以自由地将项目属性中的Project Url更改为本地IP或计算机名。然后我设置了端口转发,它可以访问 Internet。

编辑:

我发现了另一个对让 IIS Express 正确处理外部请求很重要的怪癖。

  1. 如果您以管理员身份运行 Visual Studio/IIS Express,则不得使用“netsh http add urlacl ...”命令向 HTTP.SYS 添加预留。这样做会导致 HTTP 503 Service Unavailable 错误。删除您在 URLACL 中所做的任何保留以解决此问题。

  2. 如果您没有以管理员身份运行 Visual Studio/IIS Express,则必须向 URLACL 添加预留。

于 2013-08-27T03:16:17.730 回答
30

我有完全相同的问题。尝试了一切,但最后一个技巧奏效了。

  1. 从“我的文档”中删除文件夹 IISExpress
  2. 再次加载您的项目,它将使用更新的配置再次创建 IISExpress 文件夹
  3. 检查IISExpress文件夹是否有足够的权限读写配置文件
  4. 再次加载项目并运行 IISExpress。它应该工作。
于 2013-11-18T04:24:07.513 回答
13
  1. 关闭您的项目。
  2. 转到文件夹设置并选择显示隐藏文件夹选项。
  3. 打开您的应用程序所在的文件夹。您将看到一个.vs文件夹。
  4. 打开.vs文件夹,你会看到config里面有一个文件夹。删除其内容。
  5. 在管理员模式下运行 Visual Studio。从File菜单中打开您的解决方案。
  6. 清洁您的解决方案。
  7. 构建它。
  8. 运行它,瞧!

我不建议删除 IIS Express 文件夹或弄乱其中的配置文件。

于 2017-08-12T14:45:13.620 回答
10

我正在更改此条目(我的 Web 服务器未运行并显示特定端口的访问被拒绝错误)

<bindings>
   <binding protocol="http" bindingInformation="*:61235:localhost" />
</bindings>

在“ Documents\IISExpress\config ”中的“ applicationhost.config ”中,对于特定的Web应用程序,每当我启动我的Web应用程序时,它都会被Visual Studio 2012再次覆盖为默认端口。

但是我通过在applicationhost.config. 我刚刚将“项目属性”>“网络”>“项目网址”设置从http://localhost:62135/更改为http://localhost:47279/(取决于您的计算机),它对我有用。

于 2014-02-28T19:32:43.803 回答
7

试试这个:

  1. 打开解决方案的属性
  2. 去网页
  3. 在 LOCAL IIS 下,将写入的端口号更改为任何其他端口号并创建一个新的虚拟目录。
于 2016-06-17T06:43:44.333 回答
5

我有同样的问题,但有不同的原因可能会帮助其他人。

在管理员模式下使用命令提示符: - 类型:netsh http show iplisten 如果有任何 IP 条目: - 类型:netsh http delete iplisten 重复直到列表为空。检查 IIS Express 是否现在启动。

希望这会有所帮助,尼尔斯

于 2013-11-05T09:05:21.713 回答
5

从 applicationhost.config 文件中删除不必要的站点条目为我解决了这个问题。

于 2014-02-14T12:55:22.543 回答
5

只需以管理员身份运行即可启动您的 Visual Studio

谢谢,

于 2017-12-13T04:47:20.703 回答
4

对我来说,它是我的项目解决方案文件夹中的文件夹中的文件(applicationhost.config默认情况下文件夹是隐藏的)。所以,我关闭了项目并删除了文件夹(当你打开项目时会重新创建它)然后重新打开项目并运行它..vs.vs.vs

于 2017-06-15T08:19:48.857 回答
2

就我而言,我尝试了以下方法来解决此问题。

  1. 从“MyDocuments”中删除 iisexpress 文件夹

  2. 转到解决方案资源管理器->右键单击项目->转到属性->转到Web选项卡->查看服务器->单击单选按钮“使用Visual Studio开发服务器”

我希望这能帮到您。

于 2014-12-03T04:27:20.980 回答
2

我通过以下步骤修复了它:

  • 关闭 Visual Studio
  • 运行netsh http show urlacl并查看是否列出了您的应用程序 http 地址/端口。
  • 使用上一个命令显示的保留 URL运行netsh http delete urlacl url=[ADDRESS]替换。例如[ADDRESS]http://+:17560/
  • 再次运行 VS(以管理员身份),然后转到 Web 项目的属性-> Web,然后单击创建虚拟目录按钮。
  • 现在您应该可以运行 Web 项目了。
于 2016-02-16T19:05:13.330 回答
1

在调试 > 网站属性中。

将项目 URL 中的端口号更改为任何最接近的值并保存

在此处输入图像描述

于 2016-05-16T12:20:25.130 回答
1

我花了 1 小时尝试了上面提到的每一个食谱。然后不知从哪里重新启动了我的计算机,然后再次尝试。现在一切都很好。

因此,请在尝试上述所有解决方案之前尝试重新启动计算机。它可能会有所帮助

于 2017-02-21T23:54:30.137 回答
0

我在使用 Visual Studio 2012 时遇到了同样的问题。我设法通过从 C:\Program Files (x86)\IIS Express\AppServer\applicationhost.config 路径中​​删除不必要的站点条目来解决它。以管理员身份运行我的 VS2012。希望这可以帮助

于 2014-02-14T11:51:17.213 回答
0

在开始时,尝试禁用您的防火墙。它帮助了我。Eset Smart Security 5 阻止了它。

于 2015-06-26T08:33:49.763 回答
0

几天前我遇到了这个问题,以上所有项目都无法帮助我。我的 SONY VAIO 笔记本电脑上有 ESET Smart Security 5.0,它在交互模式下工作!终于找到问题了,ESET 被 VS2012 屏蔽了! 过去,ESET 要求我允许 VS2012 与 Microsoft 通信,我选择了“拒绝访问”,而 ESET 已经制定了拒绝 VS2012 的规则。我从“ESET 规则区”中省略了这条规则,我的问题就解决了!

于 2015-07-11T16:56:47.580 回答
0

删除我的“我的文档”文件夹中的 IISExpress 文件夹以确保默认设置或在正常工作时恢复到以前的版本。

于 2015-09-27T06:12:32.393 回答
0

删除默认网站<sites> </sites>

<site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation=":8080:localhost" />
    </bindings>
</site>

和你自己的<site> </site>

并运行"C:\Program Files\IIS Express\iisexpress.exe"

http://www.iis.net/learn/extensions/using-iis-express/running-iis-express-from-the-command-line

于 2015-09-28T15:39:42.163 回答
0

在 VS 2013 中,我在我的文档上设置 Google 文档同步后看到了这个错误。将权限更新为非只读且问题已解决。

于 2016-01-27T21:34:49.080 回答
0

以管理员身份打开命令提示符,然后执行以下命令:

netsh http show urlacl

你会看到你之前添加的 url 现在你应该执行这个命令:

netsh http delete urlacl url=http://+:36899/ user=Everyone

使用时请检查列表中的 url:

(netsh http 显示 urlacl)

于 2016-11-12T10:30:16.163 回答
0

我遇到了这个问题,我所做的只是转到 Web 项目 Properties -> Web -> 在 ProjectUrl 我单击“创建虚拟目录”并修复了我的问题。

于 2017-11-21T12:18:36.963 回答
0

我的电脑有很多 Windows 更新,我也遇到了同样的问题。

花了几个小时尝试使用上述答案解决问题,但没有成功。

过去,由于防病毒软件会导致应用程序被它阻止,因此我们会遇到不同的问题,因此考虑尝试禁用它。

于 2017-12-06T13:25:17.977 回答
0

因此,在尝试了所有解决方案后,我只需从我的 PC 上卸载“One Drive”,问题就解决了。

注意:

  • 我试图运行 .net 核心 Web 应用程序。
  • Visual Studio 2017 版本 15.9.5
  • Windows 10 专业版,64 位
于 2019-01-16T17:28:58.850 回答
0

单击解决方案并按 F4。然后将端口从右键单击解决方案并选择属性到 web 选项卡端口。端口号对于案例 F4 和属性将是相同的。

于 2019-02-14T07:00:54.983 回答
0

尝试删除 IISExpress 文件夹,更改端口,重新启动 VS 和 PC,但没有成功。但是,在服务中杀死iisexpress.exe服务后它起作用了。

于 2021-01-27T12:58:55.073 回答
0

更改注册表中的参数

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

参数Start从 4 到 3 并重新启动

于 2021-05-26T08:58:28.863 回答