无法启动 IIS Express
Posted
技术标签:
【中文标题】无法启动 IIS Express【英文标题】:Cannot start IIS Express 【发布时间】:2014-02-24 13:08:06 【问题描述】:我刚刚安装了 Visual Studio 2012,想创建我的第一个 WCF 服务应用程序。我是一名来到 .NET 世界的 Java 开发人员,所以请理解 :)
我创建了一个新的 C# 项目 WCF 服务应用程序。然后我点击调试(或 F5),我收到一条错误消息:
Unable to launch IIS Express
当我再次单击时,出现另一个类似的错误,但这次 IIS 出现在托盘中,我收到通知(气泡),当我单击它时,出现一条消息:
Port '53234' is already being used by process 'IIS Express' (process ID '5524')
我尝试在 Web 选项卡的项目属性中更改端口,但它没有改变任何内容。 msgs是一样的,只是端口号改变了。
对我来说这很有趣,但我无法解决它。已经尝试更改端口,我重新安装了 IIS,重新启动 Visual Studio 和 PC。我想使用的端口上没有运行任何东西。
我使用的是 Windows 8.1 x64、Visual Studio 2012 (IIS 8)。
编辑
IIS中有一个日志消息:
Failed to register URL "http://localhost:53234/" for site "WcfService1" application "/". Error description: Cannot create a file when that file already exists. (0x800700b7)
Registration completed
【问题讨论】:
服务好像已经在运行了。你试过重启吗? 感谢 MattC。愚蠢的错别字。 是的,我尝试重新启动。 查看***.com/questions/14762646/… 也可以试试MSDN 或***.com/questions/14660366/… 【参考方案1】:对我来说,这个问题是由于项目中的错误配置造成的,它在 IISExpress 的 applicationHost.config 文件中表现出来。
我将 http 和 https 端口设置为相同。
<site name="projectname" id="3">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="myPath" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:57287:localhost" />
<binding protocol="http" bindingInformation="*:57287:localhost" />
</bindings>
</site>
要解决这个问题,请编辑项目文件以正确使用不同的端口。
另一个选项是删除 applicationHost.config 文件,Visual Studio 将在启动 IISExpress 时重新创建它。它不会解决项目配置错误,但它可能会解决我不得不做几次的错误配置。
*注意:* 要查找 IIS 的 applicationHost.config 文件,请参阅此问题Where is the IIS Express configuration / metabase file found?
【讨论】:
感谢您的意见。我很了解你的情况。您能否澄清一下我必须编辑哪些内容才能防止这种情况发生? 感谢您。像我们这样的傻瓜需要团结在一起【参考方案2】:我遇到了同样的问题,我所做的如下:
转到项目属性 -> Web 更改端口号并点击创建虚拟目录按钮现在您将能够运行应用程序而不会出现任何错误。
【讨论】:
还要确保您选择的端口不在任何排除范围内:gunnarpeipman.com/failed-to-register-url-for-site【参考方案3】:我最近遇到了这个问题,我的解决方案不在这里,所以我想我会添加它。
我的问题是 netsh 添加了一个与我的本地主机绑定匹配的 urlacl,导致此错误消息。
解决方案是调用netsh http show urlacl
并查看是否列出了您的iis express 绑定。我的本地主机绑定是针对https://localhost:44300。所以要修复它,我不得不打电话:
netsh http delete urlacl url=https://localhost:44300/
【讨论】:
这也是我的问题。它是由先前对另一个站点的绑定引起的,并最终在端口上进行了完全保留。非常感谢!【参考方案4】:我在打开两个 Visual Studio 2012 实例时遇到了这个问题,其中不同的项目恰好具有相同的名称(默认名称为 App
)。
我可以通过关闭一个 Visual Studio 实例来解决此问题。
【讨论】:
【参考方案5】:对我来说问题的根本原因是我有一个在本地 IIS 中运行的网站,该网站绑定到与我试图通过 Visual Studio 的 IIS Express 启动的端口相同的端口。 Visual Studio 调试器将启动,一切看起来都很好,但是没有加载任何 dll,而且无论我在网站上做了什么,内存图都只是一条 13[MB] 的平线(这实际上是由本地 IIS)。
所以,我只需要更改其中一个端口号。
【讨论】:
【参考方案6】:我尝试了netsh http show urlacl
,但没有看到我的地址,我的 applicationHost.config 文件看起来正确,并且 IIS 内部没有任何问题。我通过关闭 Visual Studio、从解决方案文件夹中删除 .vs 目录并重新启动 Visual Studio 来修复它。
【讨论】:
【参考方案7】:对我来说,这仅在我执行 Ctrl+F5(不调试就开始)时发生(在 Visual Studio 2019 中),但调试时没有问题。 @Mike Mengells answer 让我走上正轨。在我的项目属性中,我将“启用 SSL”从 true 切换为 false,一切都很好:)
【讨论】:
【参考方案8】:我的问题是它试图使用带有这样的 URL 的 SSL 启动:
https://localhost:34342/
我从 https 中删除了“s”,然后它起作用了。
【讨论】:
以上是关于无法启动 IIS Express的主要内容,如果未能解决你的问题,请参考以下文章
VS 调试 无法启动IIS Express Web 服务器(进程不存在)