下面的代码属于.net core web api,我称之为OcelotApiGateway。
我通过 OcelotApiGateway 上的 nuget 包管理器安装了 Ocelot 16.0.1。
这是我的Program.cs
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
namespace OcelotApiGateway
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureAppConfiguration((host, config) => config.AddJsonFile("ocelot.json"));
webBuilder.UseStartup<Startup>();
});
}
}
这是Startup.cs
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Ocelot.DependencyInjection;
using Ocelot.Middleware;
namespace OcelotApiGateway
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddOcelot(Configuration);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public async Task ConfigureAsync(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
await app.UseOcelot();
}
}
}
但是在Program.cs
中的'CreateHostBuilder(args).Build().Run();
'这一行,出现了这个错误
System.InvalidOperationException: 'A public method named 'ConfigureDevelopment' or 'Configure' could not be found in the 'OcelotApiGateway.Startup' type.'
最佳答案
我解决了这个问题,这是我的错。当我在 Configure() 方法中添加 await
时,此方法已被 Visual Studio 自动更改。如下。我后来才意识到这一点。
public async Task ConfigureAsync(IApplicationBuilder app, IWebHostEnvironment env)
这个方法必须是:
public async void Configure(IApplicationBuilder app, IWebHostEnvironment env)
关于asp.net-core-3.1 - .net core Ocelot 找不到名为 'ConfigureDevelopment' 或 'Configure' 的公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63112820/