Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法解析类型为';EntityFrameworkCore.DbContextOptions`1[Db]作为参数';identitydbcontextions';方法';配置';_Mysql_Linux_Asp.net Core_Dependency Injection_Entity Framework Core - Fatal编程技术网

Mysql 无法解析类型为';EntityFrameworkCore.DbContextOptions`1[Db]作为参数';identitydbcontextions';方法';配置';

Mysql 无法解析类型为';EntityFrameworkCore.DbContextOptions`1[Db]作为参数';identitydbcontextions';方法';配置';,mysql,linux,asp.net-core,dependency-injection,entity-framework-core,Mysql,Linux,Asp.net Core,Dependency Injection,Entity Framework Core,首先,这个项目现在在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'.

首先,这个项目现在在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'.
Frontend[30348]:-->System.IO.FileLoadException:无法加载文件或程序集'Pomelo.EntityFrameworkCore.MySql,版本=3.1.2.0,区域性=中性,PublicKeyToken=2cc498582444921b'。定位的程序集清单定义与程序集引用不匹配。(0x8013100)
前端[30348]:文件名:“Pomelo.EntityFrameworkCore.MySql,版本=3.1.2.0,区域性=neutral,PublicKeyToken=2cc498582444921b”
前端[30348]:在前端1.Startup.c.b_u9_0(DBContextOptions构建器选项)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.c__DisplayClass1_0`2.b__0(IServiceProvider p,DBContextOptions Builder b)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.CreateDbContextOptions[TContext](IServiceProvider应用程序服务提供程序,操作`2选项操作)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.c_uuDisplayClass10_0`1.b_uu0(IServiceProvider p)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite FactoryCallSite,RuntimeResolverContext上下文)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite,Target参数)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite,RuntimeResolverContext上下文)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite,Target参数)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite,ServiceProviderEngineScope作用域)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.c_uDisplayClass1_0.b_u0(ServiceProviderEngineScope范围)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(类型serviceType,ServiceProviderEngineScope ServiceProviderEngineScope)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(类型serviceType)
前端[30348]:位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider提供程序,类型serviceType)
前端[30348]:位于Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(对象实例,IAApplicationBuilder)
前端[30348]:---内部异常堆栈跟踪的结束---
前端[30348]:位于Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(对象实例,IAApplicationBuilder)
前端[30348]:位于Microsoft.AspNetCore.Hosting.ConfigureBuilder.c__DisplayClass4_0.b__0(IAApplicationBuilder)
前端[30348]:位于Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.c__DisplayClass13_0.b__2(IApplicationBuilder应用程序)
前端[30348]:位于Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.c_uu显示类0_0.g_uMiddlewareFilterBuilder | 0(IApplicationBuilder)
前端[30348]:位于Microsoft.AspNetCore.HostFilteringStartupFilter.c__DisplayClass0_0.b__0(IApplicationBuilder应用程序)
前端[30348]:位于Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken CancellationToken)
前端[30348]:未处理的异常。System.Exception:无法解析“Frontend1.Startup”类型上方法“Configure”的参数“identityDbContextOptions”的“Microsoft.EntityFrameworkCore.DbContextOptions”1[[NewDb.Models.ApplicationDbContext,NewDb,Version=1.0.0,Culture=neutral,PublicKeyToken=null]]类型的服务。
这意味着什么

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

  • 我和我的DB定义共享了这个库,那个定义共享了大约10个项目。在具有DB定义的项目中,我只有POCO类。项目文件夹中存在具有DB定义的库。主机中还存在带有连接字符串的application.json

  • 在project中,我有这个配置。现在这个配置在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();
    
    services.AddDbContext(
    (Microsoft.EntityFrameworkCore.DBContextOptions构建器选项)=>
    options.UseMySql(Configuration.GetConnectionString(“DefaultConnection”),
    (Microsoft.EntityFrameworkCore.Infrastructure.mysqldbcontextoptions构建器mySqlOption)=>
    {
    mySqlOption.CommandTimeout(10);
    mySqlOption.EnableRetryOnFailure(10);
    }),
    ServiceLifetime.Transient,ServiceLifetime.Transient);
    服务.附加性(选项=>
    {
    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()
    .AddDefaultTokenProviders();
    

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