Net核心Web应用程序中不同端口上的运行状况检查

时间:2019-08-30 06:54:46

标签: c# asp.net-core asp.net-core-webapi

我有一个带有API的标准Net核心Web应用程序。 我正在尝试实施运行状况检查,但希望它在其他端口上运行。

在“配置”中:

app.UseHealthChecks("/health", 8000);

在ConfigureServices

services.AddHealthChecks()

默认情况下,可以通过以下方式访问api: https://localhost:44322/api/values

然后,我希望可以通过以下方式访问健康检查:https://localhost:8000/health

如果我移除端口,则恢复正常。我是否需要其他配置才能将应用程序设置为在不同端口上运行?

1 个答案:

答案 0 :(得分:2)

根据要求,我正在创建一个答案,以便将来的读者可以从中受益。

最初的问题是因为您没有在应用程序中注册运行状况检查端口8000。有两种方法可以做到这一点。

  1. 通过在Environment Variables Configuration Provider

  2. 拾取的launchSettings.json中设置端口
  3. 或者按照我在注释中的建议,在UseUrls中调用Program.cs并直接在此处指定HealthCheck端口以及您的应用程序端口。像这样:

return new WebHostBuilder()
    .UseConfiguration(config)
    .UseUrls("http://localhost:5000/;http://localhost:8000")
    .UseKestrel()
    .UseStartup(startupType)
    .Build();

其中5000是您的常规App端口,而8000是HealthCheck端口。

然后在Configure的{​​{1}}内直接使用端口:

Startup.cs

您可以在官方文档中找到所有这些以及更多内容:Health checks in ASP.NET Core - Filtering by Port