我有一个带有 API 的标准 Net Core Web 应用程序。 我正在尝试实现健康检查,但希望它在不同的端口上运行。
在配置中:
app.UseHealthChecks("/health", 8000);
在配置服务中
services.AddHealthChecks()
默认情况下,可以通过以下方式访问 api: https://localhost:44322/api/values
然后我希望可以通过以下方式访问健康检查:https://localhost:8000/health
如果我删除端口,健康状况良好。我是否需要一些其他配置来设置应用程序以在不同端口上运行?
最佳答案
应要求,我正在创建一个答案,以便 future 的读者可以从中受益。
最初的问题是因为您没有在您的应用程序中注册健康检查端口 8000
。有两种方法可以做到这一点。
通过在
launchSettings.json
中设置由 Environment Variables Configuration Provider 获取的端口或者按照我在评论中的建议,调用
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.cs
的 Configure
中直接使用端口:
app.UseHealthChecks("/health", port: 8000);
您可以在官方文档中找到所有这些以及更多内容:Health checks in ASP.NET Core - Filtering by Port
关于c# - Net 核心 Web 应用程序中不同端口的健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721900/