首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >“无法启动IIS Express Web服务器。”在Visual Studio中

“无法启动IIS Express Web服务器。”在Visual Studio中
EN

Stack Overflow用户
提问于 2015-03-18 15:26:28
回答 28查看 85.4K关注 0票数 155

我尝试通过visual studio运行我的web服务。我遇到了这样的问题:

代码语言:javascript
代码运行次数:0
运行
复制
---------------------------
Microsoft Visual Studio
---------------------------
Unable to launch the IIS Express Web server.

Failed to register URL "http://localhost:63591/" for site "xxxxxx" application
"/". Error description: The process cannot access the file because it is being
used by another process. (0x80070020)

---------------------------
OK   
---------------------------

我看到了任务管理器,发现系统使用了PID 4,它的描述是NT Kernel & System.,所以我尝试停止http service。所有依赖项服务都已停止。但是我在停止http服务时遇到了一个问题,比如

代码语言:javascript
代码运行次数:0
运行
复制
The service is starting or stopping.  Please try again later.

因此,我尝试手动停止和启动该服务。但是End进程被禁用。如果有人能在这个问题上提供帮助,那将是很有帮助的

EN

回答 28

Stack Overflow用户

发布于 2016-01-27 22:34:06

来自https://www.davidsalter.co.uk/unable-to-launch-the-iis-express-web-server-error-0x80070020/

错误代码0x80070020表示ERROR_SHARING_VIOLATION,对于IIS Express (或IIS),这意味着它试图侦听的端口正被另一个进程使用。

使用netstat命令找出哪个应用程序正在使用该端口。

代码语言:javascript
代码运行次数:0
运行
复制
netstat -ao | findstr <port_number_to_search_for>

a参数告诉netstat显示所有连接和侦听端口。

o参数告诉netstat显示与连接相关联的进程ID。

运行上面的netstat命令将产生如下输出:

代码语言:javascript
代码运行次数:0
运行
复制
C:\>netstat -ao | findstr 4026
TCP    12.0.0.1:4026        cs-pc:4026         LISTENING       9544

最后显示的数字(这里是9544)是进程ID。

票数 170
EN

Stack Overflow用户

发布于 2020-01-06 18:11:02

当我试图从Windows 10上的Visual Studio 2019运行一个项目时,我遇到了类似的问题。应用程序无法启动,因为该端口显然正被另一个进程使用。但是,netstat命令显示该端口未被任何应用程序使用。

花了两天时间在谷歌上搜索后,我找到了一个对我有效的解决方案。我尝试使用的端口在排除的端口范围内,您可以通过运行以下命令来查看:

代码语言:javascript
代码运行次数:0
运行
复制
netsh interface ipv4 show excludedportrange protocol=tcp

在我的案例中,保留这些端口的罪魁祸首是Docker for Windows和Hyper-V

解决方案

我卸载了Docker (因为我不需要它)并禁用了Hyper-V。要禁用Hyper-V:请转到:控制面板->程序和功能->打开或关闭Windows功能。取消勾选Hyper-V并重新启动计算机。

重新启动后,命令netsh interface ipv4 show excludedportrange protocol=tcp显示没有保留端口。

然后,通过从提升的命令行运行以下命令,我将应用程序的端口添加到排除的端口范围:

代码语言:javascript
代码运行次数:0
运行
复制
netsh int ipv4 add excludedportrange protocol=tcp startport=50403 numberofports=1 store=persistent

然后,我重新启用了Hyper-V (如果需要,可以重新安装Docker),然后再次重新启动计算机。

Hyper-V现在保留其端口,而不会干扰我的应用程序使用的端口:Reserved Port Ranges

票数 170
EN

Stack Overflow用户

发布于 2021-02-20 19:23:58

我的解决方案是,

要解决此问题,您必须临时禁用winnat服务,这只需运行此命令即可(必须以管理员身份运行)

net stop winnat

启动docker服务,然后再次启动winnat

net start winnat

http://www.herlitz.nu/2020/12/01/docker-error-ports-are-not-available-on-windows-10/上发布的解决方案

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29116292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档