C# Net core Web应用程序中不同端口的运行状况检查

C# Net core Web应用程序中不同端口的运行状况检查,c#,asp.net-core,asp.net-core-webapi,C#,Asp.net Core,Asp.net Core Webapi,我有一个带API的标准Net core web应用程序。 我正在尝试实现healthcheck,但希望它在不同的端口上运行 在配置中: app.UseHealthChecks("/health", 8000); 在配置服务中 services.AddHealthChecks() 默认情况下,可以通过以下方式访问api: 然后我希望通过以下方式访问healthcheck: 如果我拆下端口,healh工作正常。我是否需要一些其他配置来设置应用程序在不同端口上运行?根据要求,我正在创建一个答案,

我有一个带API的标准Net core web应用程序。 我正在尝试实现healthcheck,但希望它在不同的端口上运行

在配置中:

app.UseHealthChecks("/health", 8000);
在配置服务中

services.AddHealthChecks()
默认情况下,可以通过以下方式访问api:

然后我希望通过以下方式访问healthcheck:


如果我拆下端口,healh工作正常。我是否需要一些其他配置来设置应用程序在不同端口上运行?

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

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

  • 通过在
    launchSettings.json
    中设置端口,该端口由

  • 或者正如我在评论中所建议的,在
    Program.cs
    中调用
    UseUrls
    ,直接在那里指定HealthCheck端口,以及应用程序的端口。大概是这样的:

  • 其中,
    5000
    是您的正常应用程序端口,
    8000
    是HealthCheck端口

    然后在
    Configure
    中的
    Startup.cs
    中直接使用端口:

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

    您可以在官方文档中找到所有这些和更多内容:

    端口
    8000
    必须在应用程序的侦听端口中注册。您可以在
    程序.cs
    下使用URL(“http://localhost:5000/;http://localhost:8000/)
    。请参见此处:,或者在
    launchSettings.json
    @jpgrassi中执行此操作。谢谢如果你把它作为一个答案,我可以标记为批准!
    app.UseHealthChecks("/health", port: 8000);