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

时间:2018-04-30 15:39:11

标签: .net http iis https iis-7.5

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

以下是针对类似问题的解决方案,适用于此方案:

  • 用户身份已过时
    • 原因:在HTTP下成功运行的同一个应用程序池与HTTPS
    • 一起使用
  • 应用池用户的密码已更改
    • 原因:在HTTP下成功运行的同一个应用程序池与HTTPS
    • 一起使用
  • 设置"加载用户个人资料"为假
    • 原因:此设置已设为false。同样,在HTTP下成功运行的相同App Pool与HTTPS
    • 一起使用
  • .NET regiis
    • 原因:Site / .NET已经通过HTTP成功运行,并且该站点似乎从未出现过.NET代码,因为503错误立即返回 ,即使在IIS重置或Web之后也是如此。配置修改
  • 重新启动IIS
    • 原因:我试过了
  • 重新启动应用池
    • 原因:我试过了
  • 网站>高级设置>启用的协议> http,https
    • 原因:我试过了

2 个答案:

答案 0 :(得分:8)

评论者Chad Cothern this blog得到了答案,并与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. 再次尝试运行您的应用程序。
  6. 请注意,您还可以使用此方法检查端口80或任何其他端口。例如,如果保留端口80而不保留443,那么通过HTTPS的站点将起作用,而HTTP则不起作用。

    Showing the above commands and results

答案 1 :(得分:0)

当我在 Firefox 中检查控制台时,我遇到了类似的问题,通过 HTTPS、HTTP 获取“503“服务不可用””。 IIS 端的一切看起来都很好:SSL 证书、端口、站点运行等。我检查了调制解调器端口并意识到它需要启用端口 443 转发。只有端口 80 正在转发。但是因为我使用的是品牌 CenturyLink 的调制解调器,路由器的远程 GUI 管理正在使用该端口。

经验教训,如果您使用由 CenturyLink 或其他具有相同功能的公司品牌的路由器,也许同样适用。根据此链接中的答案 here,请执行以下操作:

常见错误:“定义的端口或端口范围正被另一个端口转发或应用程序规则使用。”

如果端口 443 已被路由器的远程 GUI 管理占用。释放该端口:

  1. 登录到 WiFi 路由器。
  2. 进入高级部分。
  3. 单击远程管理下左侧菜单中的远程 GUI。
  4. 启用远程 GUI 并将端口更改为 443 以外的其他端口(例如 4433),然后保存。
  5. 如果您不想启用远程 GUI,请禁用它,然后保存。

结论:

这解决了我在 HTTPS 上出现的“503“服务不可用”问题。需要启用端口 443。