0

我有一个使用 Steeltoe 3.1.2 从 Steeltoe Initialzr 生成的应用程序。

出于某种原因,编译时我得到:

dotnet/Extract/Startup.cs(53,27):错误 CS1501:方法“MapAllActuators”没有重载需要 0 个参数 [dotnet/Extract/Extract.csproj]

这是我的配置方法:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseSwagger();
                app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Extract"));
            }

            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapAllActuators();
            });
        }

和项目定义:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <Nullable>disable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <PropertyGroup>
    <SteeltoeVersion>3.1.2</SteeltoeVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.*" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="OpenTelemetry.Exporter.Jaeger" Version="1.1.0" />
    <PackageReference Include="Steeltoe.Extensions.Logging.DynamicLogger" Version="$(SteeltoeVersion)" />
    <PackageReference Include="Steeltoe.Management.EndpointCore" Version="$(SteeltoeVersion)" />
    <PackageReference Include="Steeltoe.Management.TracingCore" Version="$(SteeltoeVersion)" />
  </ItemGroup>

</Project>

知道根本原因可能是什么吗?

4

1 回答 1

0

添加执行器有多种选择:

  1. 使用 IWebHostBuilder 扩展

    .ConfigureWebHostDefaults(webBuilder => { webBuilder.AddAllActuators() .UseStartup(); });

  2. 使用 IServiceCollection 扩展(如 initializr 示例所做的那样)

    services.AddAllActuators(配置);

  3. 你也可以做你正在做的事情,但它需要一个约定或强制你传递 null (创建了一个问题来跟踪这个)

    endpoints.MapAllActuators(convention => convention.RequireCors("corspolicy"));

或者

endpoints.MapAllActuators(null);

建议使用前两个选项,它们还使您能够添加约定 - 请参阅此处的示例

于 2022-02-18T18:36:37.313 回答