IIS 503通过HTTPS“服务不可用”,HTTP工作正常

问题描述 投票:1回答:1

我有一个在IIS 7.5中运行的网站。当我通过HTTP访问该网站时,一切正常。当我通过HTTPS运行该站点时,我立即收到HTTP 503错误“服务不可用”。网站上使用的SSL证书是自生成/自签名的。

以下是我遇到的类似问题的解决方案,这些问题不适用于此方案:

  • 用户身份已过时 原因:在HTTP下成功运行的同一个应用程序池与HTTPS一起使用
  • 应用程序池用户的密码已更改 原因:在HTTP下成功运行的同一个应用程序池与HTTPS一起使用
  • 将“加载用户配置文件”设置为false 原因:这已设置为false。同样,在HTTP下成功运行的相同App Pool也与HTTPS一起使用
  • .NET regiis 原因:Site / .NET已经通过HTTP成功运行,并且该站点似乎永远不会出现在.NET代码中,因为503错误立即返回,即使在IIS重置或web.config修改之后也是如此
  • 重启IIS 原因:我试过这个
  • 重启应用池 原因:我试过这个
  • 站点>高级设置>启用的协议> http,https 原因:我试过这个
.net http iis https iis-7.5
1个回答
8
投票

this blog上的评论者Chad Cothern得到了答案,并由BretB与this Microsoft Blog联系起来。在这种情况下的问题是端口443上的所有内容都已被保留,并且“阻止W3SVC在尝试启动站点时获得侦听端口80的权限。此外,在IIS中运行的应用程序不需要显式保留来运行,只有非IIS应用程序必须保留URL命名空间才能使用HTTP来侦听请求。“

以下是确定这是否是问题以及如何解决的步骤:

  1. 打开命令提示符
  2. 运行:netsh http show urlacl url=https://+:443/
  3. 如果有什么东西,那么这就是你的问题。端口443完全保留并阻止IIS。 如果需要为在IIS外部运行的应用程序保留端口443,则需要使用应用程序路径注册(即http://+:443/appPath) 如果那里什么也没有,那么这可能不是问题。无需继续。
  4. 运行:netsh http delete urlacl https://+:443/
  5. 尝试再次运行您的应用程序

请注意,您还可以使用此方法检查端口80或任何其他端口。例如,如果保留端口80而不保留443,则通过HTTPS的站点可以工作,而HTTP则不会。

Showing the above commands and results

© www.soinside.com 2019 - 2024. All rights reserved.