IIS 80 端口提示 503 错误,但端口未被占用

IIS 80 端口提示 503 错误,但端口未被占用

简述

通过 netstat -ano | findstr :80 发现除了 IIS 默认站点,没有其他应用程序占用了 80 端口。
经过一整天的排查,终于在下午从 StackOverflow 上找到了答案。

StackOverflow 问题地址:

https://stackoverflow.com/questions/28302930/http-error-503-the-service-is-unavailable-when-port-80-is-already-free

MSDN 503服务不可用的不太常见的根本原因:

https://docs.microsoft.com/zh-cn/archive/blogs/webtopics/a-not-so-common-root-cause-for-503-service-unavailable

排查

使用命令 netsh http show urlacl 查询所有被保留的 URL。

大概如下图所示:

从图上可看出,http://localhost:80/https://localhost:443/ 这两个地址都被保留了,所以我们在 IIS 中绑定 80 端口才会报错 503。

解决

使用命令 netsh http delete urlacl <保留的URL> 删掉被保留的 URL即可。