无法为方法"配置"的参数"identityDbContextOptions"解析类型为"EntityFrameworkCore.DbContextOptions"1[Db] 的服务



首先,这个项目现在成功地在Windows中工作,并且在上次更新之前成功地在Linux主机中工作。更新新版本后,我收到错误:

Frontend[30348]:  ---> System.IO.FileLoadException: Could not load file or assembly 'Pomelo.EntityFrameworkCore.MySql, Version=3.1.2.0, Culture=neutral, PublicKeyToken=2cc498582444921b'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
Frontend[30348]: File name: 'Pomelo.EntityFrameworkCore.MySql, Version=3.1.2.0, Culture=neutral, PublicKeyToken=2cc498582444921b'
Frontend[30348]:    at Frontend1.Startup.<>c.<ConfigureServices>b__9_0(DbContextOptionsBuilder options)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.<>c__DisplayClass1_0`2.<AddDbContext>b__0(IServiceProvider p, DbContextOptionsBuilder b)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.CreateDbContextOptions[TContext](IServiceProvider applicationServiceProvider, Action`2 optionsAction)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.<>c__DisplayClass10_0`1.<AddCoreServices>b__0(IServiceProvider p)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
Frontend[30348]:    at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
Frontend[30348]:    at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
Frontend[30348]:    --- End of inner exception stack trace ---
Frontend[30348]:    at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
Frontend[30348]:    at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
Frontend[30348]:    at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)
Frontend[30348]:    at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
Frontend[30348]:    at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
Frontend[30348]:    at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
Frontend[30348]: Unhandled exception. System.Exception: Could not resolve a service of type 'Microsoft.EntityFrameworkCore.DbContextOptions`1[[NewDb.Models.ApplicationDbContext, NewDb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' for the parameter 'identityDbContextOptions' of method 'Configure' on type 'Frontend1.Startup'.

这意味着什么?

  1. 我将我的项目部署为二进制托管。托管中存在的所有NET CORE库。还可以重定向到项目文件中的另一个库版本(并且存在结果文件Frontend.dll.config(。

  2. 我已经和我的DB定义共享了库,该定义共享了大约10个项目。在有DB定义的项目中,我只有POCO类。项目文件夹中存在具有DB定义的库。此外,宿主中还存在带有连接字符串的application.json。

  3. 在项目中,我有这样的配置。现在,这个配置在Windows中运行得很好,在以前版本的Linux主机中也可以运行。

    services.AddDbContext<ApplicationDbContext>(
    (Microsoft.EntityFrameworkCore.DbContextOptionsBuilder options) =>
    options.UseMySql(Configuration.GetConnectionString("DefaultConnection"),
    (Microsoft.EntityFrameworkCore.Infrastructure.MySqlDbContextOptionsBuilder mySqlOption) =>
    {
    mySqlOption.CommandTimeout(10);
    mySqlOption.EnableRetryOnFailure(10);
    }),
    ServiceLifetime.Transient, ServiceLifetime.Transient);
    services.AddIdentity<ApplicationUser, IdentityRole>(options =>
    {
    options.Password.RequiredLength = 4;
    options.Password.RequireUppercase = false;
    options.Password.RequireLowercase = false;
    options.Password.RequireUppercase = false;
    options.Password.RequireNonAlphanumeric = false;
    options.SignIn.RequireConfirmedEmail = true;
    }).AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders();
    

我已经从C:\Users\khark.nuget\packages\pomelo.entityframeworkcore.mysql\3.1.2上传了库(而不是发布项目的目录(,项目正在启动。

相关内容

  • 没有找到相关文章

最新更新