ASP.NET 服务器 2019 上的 4.7 - HTTPS 提供 HTTP 503 - 服务不可用(在 Http 上工作)

ASP.NET 4.7 on Server 2019 - HTTPS giving HTTP 503 - Service Unavailable (Works on Http)

我们正在尝试在 Server 2019 上测试我们的网络应用程序,看看它们将如何工作。我们的 Team City 部署工作正常,现在我正试图弄清楚 Server 2019 发生了什么。

https:// 上的任何页面都会给我错误:

来源:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Service Unavailable</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Service Unavailable</h2>
<hr><p>HTTP Error 503. The service is unavailable.</p>
</BODY></HTML>

如果我转到 Http:// 上的页面,它会起作用。

没有其他事情发生。

应用程序

该应用程序是一个 ASP.NET 4.6 MVC 应用程序。从 2012 年到 2016 年,它目前在多台服务器上运行,并且 windows 10 w/o 个问题。

设置:

我做了什么

我有时会遇到这两种情况:

Reserved URL            : https://+:443/
Can't get security descriptor, Error: 87


    Reserved URL            : https://+:443/
    SDDL: O:NS

我很茫然,因为我没有关于 503 为什么会回来的其他信息。就好像 IIS 不是 运行,因为它甚至无法提供 test.html 页面。我完全希望这会非常简单,我将面对手掌一周或 Server 2019 独有的东西。

从评论故障排除中提取的根本原因:

如果 IIS 正在为 http 上的应用程序提供服务,但收到 503 服务对 https 不可用,并且确认启用了 http 和 https 协议,请确认 SSL 端口 443 未被系统保留。

您可以通过 运行 从命令行执行以下操作来完成此操作:

netsh http show urlacl url=https://+:443/

如果输出确认 URL 已保留,那么您有两个选择:

  1. 通过运行ning命令删除预约

    netsh http delete urlacl https://+:443/
    

***如果保留端口必须保持不变(运行 cmd netstat -a -n -o | findstr 443 在端口上找到 PID 运行ning 并使用进程资源管理器来识别来自 PID 的进程)然后使用选项 2

  1. 将您的应用程序重新配置到端口 8443 上的 运行(假设它未显示在保留的 url 列表中。

***虽然您可以使用任何端口连接到 运行 SSL,但浏览器会自动为 443 和 8443 添加前缀 https。在 443 和 8443 以外的端口上使用 SSL 通信的应用程序必须特别注意将用户重定向到 https,因为浏览器不会自动添加前缀。另请注意,某些接入点的常见做法是禁用不超过 80 或 443 的通信,因此环境因素可能会影响切换端口的使用……即对您的用户进行尽职调查:)