azure - 即使浏览器网站返回 200,应用服务运行状况检查也为 0%

标签 azure azure-web-app-service health-check

我已为应用服务插槽启用了路径“/”的运行状况检查。
浏览器中的此路径并使用curl 返回 200 状态代码。
但应用服务运行状况检查状态显示0.00%(健康 0/降级 1)
这怎么可能?

最佳答案

我发现的一个原因是运行状况检查访问的是 *.azurewebsites.net URL 上的网站,而不是任何自定义域。

如果您有规范的重定向设置,将所有请求转发到自定义域,则运行状况检查会将其视为失败,因为它预期会收到 200 响应,但会收到 301/302 响应。

我发现的最佳解决方案是忽略规范重定向上的运行状况检查用户代理,如下所示:

<rule name="Canonical Domain Name" enabled="false">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" negate="true" pattern="^customdomain\.com$" />
    <add input="{HTTP_USER_AGENT}" negate="true" pattern="HealthCheck/1\.0" />
    <add input="{HTTP_USER_AGENT}" negate="true" pattern="ReadyForRequest/1\.0\+\(HealthCheck\)" />
  </conditions>
  <action type="Redirect" url="https://customdomain.com/{R:1}" redirectType="Permanent" />
</rule>

关于azure - 即使浏览器网站返回 200,应用服务运行状况检查也为 0%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75257904/

相关文章:

azure - 如何使用 Bicep 通过 .Net 堆栈部署 Windows Azure 应用服务?

docker - 无法在 MacOS 上运行 az acr check-health 命令

docker - Podman 缺少健康检查

azure - 配置 Azure 应用程序网关以从 Azure 存储容器提供静态网站服务

asp.net-core - 仅在横向扩展的 Azure 应用服务的一个实例上运行 IHostedService

azure - 无法购买 Azure 域共享服务计划

sql-server - SSMS "Windows logins are not supported in this version of SQL Server"

azure - 如何将证书添加到Azure门户中的 'www'子域

azure - 依赖 StackExchange.Redis.Extensions.Core 2.4.0 不支持框架 .NetStandard,Version=v1.6

c# - ASP.NET MVC RequireHttps 属性不起作用