ABP-VNext 用户权限管理系统实战----问题与解决方案
1、swagger请求总是报:400 Bad Request,但是postman请求是没有问题
查看日志报表:
解决方案:
在 ConfigureServices 中增加如下的内容
Configure<AbpAntiForgeryOptions>(options => { //options.TokenCookie.Expiration = TimeSpan.Zero; options.AutoValidate = false; //表示不验证防伪令牌 });
2、请求接口报错:
System.MissingMethodException: Method not found: 'IdentityModel.Client.DiscoveryEndpoint IdentityModel.Client.DiscoveryEndpoint.ParseUrl(System.String)
解决方案:
JwtBearer配置修改,并升级 Microsoft.AspNetCore.Authentication.JwtBearer, Version=7.0.14.0
3、集成定时任务时报错:
Method not found: 'System.Type Microsoft.EntityFrameworkCore.Metadata.ITypeB
原因:之前定时任务的类库用的dll是支持6.0的,项目升级到了7.0后版本不兼容了。
解决方案:引用定时任务dll中的类与项目中的类EntityFrameworkCore版本不一致,升级到一致就可以了。
4、集成SignalR时报错
解决方案:
在使用的类库中将引用的版本改为:7.2.2
5、控制器服务注入服务层服务对像报错
Class:Volo.Abp.AspNetCore.Mvc.ExceptionHandling.AbpExceptionFilter
Message:An exception was thrown while activating Bridge.System.HttpApi.SysFileController -> Bridge.System.Application.SysFileService.
Autofac.Core.DependencyResolutionException: An exception was thrown while activating Bridge.System.HttpApi.SysFileController -> Bridge.System.Application.SysFileService.
---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'Bridge.System.Application.SysFileService' can be invoked with the available services and parameters:
Cannot resolve parameter 'Volo.Abp.Domain.Repositories.IRepository`2[Bridge.System.Domain.SysFile,System.Guid] sysFileRepository' of constructor 'Void .ctor(Volo.Abp.Domain.Repositories.IRepository`2[Bridge.System.Domain.SysFile,System.Guid], Microsoft.Extensions.Options.IOptions`1[Bridge.Shared.Models.SysOptions])'.
See https://autofac.rtfd.io/help/no-constructors-bindable for more info.
at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.<UseSingleConstructorActivation>b__0(ResolveRequestContext context, Action`1 next)
解决方案:
检查SystemDbContext是否加了:public DbSet<SysFile> SysFiles { get; set; }
检查SystemDbContextModelCreatingExtensions是否加了:
builder.Entity<SysFile>(s =>
{
s.ToTable("t_sys_file");
s.ConfigureByConvention();
});
6、项目启动报错
解决方案:
注掉红框中的部分
7、home控制器中报错
解决方案:
加上HttpGet