Nav*_*p11 5 c# .net-core asp.net-core
我正在 .netcore 3.1 中创建一个 webapi 项目,这是我在 program.cs 中的代码
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.UseStartup<Startup>();
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的startup.cs:
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 async Task ConfigureServices(IServiceCollection services)
{
services.AddAuthorization();
services.RegisterEasyNetQ("host=localhost;username=admin;password=admin");
services.AddSingleton(typeof(CreateOrderHandler));
services.AddControllers();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
}
}
Run Code Online (Sandbox Code Playgroud)
但运行该项目后我收到此异常:
应用程序启动异常System.InvalidOperationException:无法找到所需的服务。请通过在应用程序启动代码中调用“ConfigureServices(...)”内调用“IServiceCollection.AddAuthorization”来添加所有必需的服务。在Microsoft.AspNetCore.Builder.AuthorizationAppBuilderExtensions.VerifyServicesRegistered(IApplicationBuilder应用程序)在Microsoft.AspNetCore.Builder.AuthorizationAppBuilderExtensions.UseAuthorization(IApplicationBuilder应用程序)在project.Order.Startup.Configure(IApplicationBuilder应用程序,IWebHostEnvironment env)在/82a891c3-0533-4937 -9b8d-44d0c7405e9f/Roaming/project/project.Order/Startup.cs:System.RuntimeMethodHandle.InvokeMethod(对象目标,Object []参数,签名sig,布尔构造函数,布尔wrapExceptions)处的System.Reflection.RuntimeMethodInfo处的第50行。
在 Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object 实例、IApplicationBuilder 构建器) 在 Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.b__0 调用(Object obj、BindingFlags invokeAttr、Binder binder、Object[] 参数、CultureInfo Culture )(IApplicationBuilder 构建器) 在 Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.b__2(IApplicationBuilder 应用程序) 在 Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.b__0(IApplicationBuilder 应用程序) 在 Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancelToken) 未处理的异常。System.InvalidOperationException:无法找到所需的服务。请通过在应用程序启动代码中调用“ConfigureServices(...)”内调用“IServiceCollection.AddAuthorization”来添加所有必需的服务
我搜索了很多但找不到任何提示。
Run Code Online (Sandbox Code Playgroud)public async Task ConfigureServices(IServiceCollection services)
该ConfigureServies
方法预计不会返回Task
. 这意味着 ASP.NET Core 框架无法找到ConfigureServices
您添加的这个特定方法。
更新签名,如下:
public void ConfigureServices(IServiceCollection services)
Run Code Online (Sandbox Code Playgroud)
通过此更改,ConfigureServices
将调用该方法,这将按预期添加服务。
归档时间: |
|
查看次数: |
4684 次 |
最近记录: |