在.NET 8工作项目中添加端点.MapHealthChecks

问题描述 投票:0回答:1

我在.net8.0中有一个项目Sdk =“Microsoft.NET.Sdk.Worker”,我想在该项目中使用kestrel来托管一些端点以进行健康检查。我在 .net 5.0 中做到了这一点,但在 .net 8.0 中不起作用。 这是 .net 5 的示例代码:

.ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseKestrel();
                        webBuilder.UseStartup<Startup>();
                    })

app.UseEndpoints(endpoints =>
            {
                var allPredicate = new HealthCheckOptions()
                {
                    Predicate = _ => true,
                    ResponseWriter = HealthCheckTools.WriteResponse
                };
                endpoints.MapHealthChecks("/hc", allPredicate);
                endpoints.MapHealthChecks("/hc/startup", allPredicate);
                endpoints.MapHealthChecks("/hc/ready", allPredicate);
                endpoints.MapHealthChecks("/hc/live", allPredicate);
            });
worker .net-8.0 health-check kestrel
1个回答
0
投票

HealthCheckEndpointRouteBuilderExtensions.MapHealthChecks
Microsoft.AspNetCore.App.Ref
metapackage 的一部分,使用它的最简单的选择就是切换到
Web
SDK:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
  </PropertyGroup>
    ...
</Project>

因此,只需创建一个普通的 ASP.NET Core 应用程序(没有任何端点)并向其中添加托管服务。

或者,您可以添加

FrameworkReference
Microsoft.AspNetCore.App
,但可以说它没有多大意义/区别。

© www.soinside.com 2019 - 2024. All rights reserved.