c# - Net 核心 Web 应用程序中不同端口的健康检查

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

我有一个带有 API 的标准 Net Core Web 应用程序。 我正在尝试实现健康检查,但希望它在不同的端口上运行。

在配置中:

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

在配置服务中

services.AddHealthChecks()

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

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

如果我删除端口,健康状况良好。我是否需要一些其他配置来设置应用程序以在不同端口上运行?

最佳答案

应要求,我正在创建一个答案,以便 future 的读者可以从中受益。

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

  1. 通过在 launchSettings.json 中设置由 Environment Variables Configuration Provider 获取的端口

  2. 或者按照我在评论中的建议,调用 Program.cs 中的 UseUrls 并直接在此处指定 HealthCheck 端口以及您的应用程序的端口。像这样:

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

5000 是您的普通 App 端口,8000 是 HealthCheck 端口。

然后在 Startup.csConfigure 中直接使用端口:

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

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

关于c# - Net 核心 Web 应用程序中不同端口的健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721900/

相关文章:

c# - .NET Core Web API 作为 Azure 应用服务上的虚拟应用程序

将 excel 与 oledb 结合使用时出现 C# 异常 : External table is not in the expected format.

c# - 有没有办法告诉 Visual Studio 在 Debug模式下默认显示某些成员值?

c# - .Net Core 应用程序无法将文件写入任何文件夹 OSX

c# - Angular Post json to .net core web api 为空

c# - 如何允许需要 Authorization header 的缓存 API 端点?

c# - 将 GPS 解析为度数

c# - ThreadStatic 字段 VS 方法参数 VS 每个线程一个实例

asp.net-core - 使用 Application Insights 在 Azure 上进行 ASP.NET Core 跟踪日志记录

c# - 如何在 Asp.net core mvc 的 Controller 中获取自己的用户