注:以下问题全部基于版本 © 2019 MLCDZ. Version 4.3.0.0 [20190830]  .net core 的版本为2.2
1、System.InvalidOperationException:“Unable to determine the relationship represented by navigation property 'User.DeleterUser' of type 'User'. Either manually configure the relationship, or ignore this property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'.” 
 
原因:在EF层XXXMLCDZDbContext中OnModelCreating 下缺少对初始化的配置,加上base.OnModelCreating(modelBuilder); 就好了
2、

 An unhandled exception occurred while processing the request.
ComponentNotFoundException: No component for supporting the service MLCDZ.Web.Mvc.Areas.ABase.Controllers.DictionaryController was found
Castle.MicroKernel.DefaultKernel.Castle.MicroKernel.IKernelInternal.Resolve(Type service, IDictionary arguments, IReleasePolicy policy, bool ignoreParentContext) 
原因:1、路由规则可能没有写对了,2,Control没有继承自XXXControllerBase。
有个网友的解决办法是 https://www.cnblogs.com/saving/p/10385382.html ,但是对我没用
我的是第二条,实际上修改了控制器的继承类后,路由规则直接用默认的就可以了,都不用改
 
3、Areas 区域内页面样式丢失
这个手动在页面加上    Layout = "~/Views/Shared/_Layout.cshtml"; 引入母版页就可以了
 
4、在Areas区域中使用多语言
在区域中使用多语言会提示 当前上下文中不存在名称“L”,解决办法,将View中的_ViewImports.cshtml 复制一份到区域中就可以了
 
5、页面选择多租户的时候,有一个就是报错 AbpServiceProxies/GetAll
仔细看报错提示或者log,很有可能是后台某些地方不符合规范,我的错误是应用层方法的参数只能传一个 而我传了多个
 
6、动态修改租户ID
 ,Abp官方提供的方法都是临时的,包括,AbpSession.Use(2, AbpSession.UserId);和_unitOfWorkManager.Current.SetTenantId(TenantId),主要技巧就是要移除Claim 登出一次 再登录就可以了(花了一天半的时间,各种都尝试过了,有其他更好想法的,欢迎砸砖)

7、同一个程序 有时候执行返回正常,有时候返回不正常,或者正常执行但是返回代码不对,异常日志还各不相同,像如下

1)、Self referencing loop detected for property 'Task' with type 'System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[MLCDZ.Common.Entity.LayPagedDto`1

2)、An unhandled exception was thrown by the application.

原因,程序里面同时使用了同步和异步,全部改为异步就可以了

8、设置默认语言

  在EF层 DefaultSettingsCreator的  Create()中设置,其中,DefaultLanguageName 的值为 "zh-Hans",

我在设置后,一切正常,也可以切换,但是中间在将菜单修改为从数据库动态提取后,发现不能切换语言了,最终找到的原因是修改了Startup的Configure方法中  app.UseAbp()的位置, app.UseAbp()为 ABP 框架的初始化方法,当时测试的时候没有问题 ,但是后面测试其他方法是发现了各种诡异的错误 估计都跟它移动了位置有关。

另一个网友的解决方法如下,具体的,我并没有尝试

9.程序在本地运行正常,发布到服务器后报错,Error: Failed to start the connection: Error: Unable to initialize any of the available transports.并且每个页面都有这个错误,这个问题耽误了我一天的时间,因为网上搜不到类似的错误提示,最后到github去提问,老外说因为我的服务器不支持websocket,最后到服务器添加角色一看,果然没有装,装上,重启,搞定了

2019-10-16:

今天遇到的两个坑有点大,幸好有网友帮忙,我记下来希望能帮到更多的新手

1、去除用户的电子邮件必填验证
2、api发布后,swagger正确,调试postman工具不能正确访问(明天更新)

3、为什么apb的API 明明声明为post调用,却只能用get才能调用成功,用post调用参数为空

答案:

1、去除用户的电子邮件必填验证

参考网站:https://blog.csdn.net/weixin_34326558/article/details/89622629 但是不全,没有成功

我的模型,其他的大家跟着各个网站的改,反正我没有成功

        /// <summary>
/// 邮箱
/// </summary>
[Email]
[Required(AllowEmptyStrings = true)]
[StringLength(256)]
public override string EmailAddress { get; set; }

  最后,在EF的Context中加了这句,成功了

modelBuilder.Entity<User>().Property(a => a.EmailAddress).IsRequired(false);

2、api发布后,swagger正确,调试工具不能正确访问,注意我圈住的地方

如果是请求数据,需要token 注意token的位置

3、为什么apb的API 明明声明为post调用,却只能用get才能调用成功,用post调用参数为空

这个直接上聊天截图

此贴太长了,后面的坑重新开贴,欢迎高手来交流

ABP core2.2错误笔记,持续更新的更多相关文章

  1. BLE资料应用笔记 -- 持续更新

    BLE资料应用笔记 -- 持续更新 BLE 应用笔记 小书匠 简而言之,蓝牙无处不在,易于使用,低耗能和低使用成本.'让我们'更深入地探索这些方面吧. 蓝牙无处不在-,您可以在几乎每一台电话.笔记本电 ...

  2. DataStage 错误集(持续更新)

    DataStage 错误集(持续更新) DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 D ...

  3. [读书]10g/11g编程艺术深入体现结构学习笔记(持续更新...)

    持续更新...) 第8章 1.在过程性循环中提交更新容易产生ora-01555:snapshot too old错误.P257 (这种情况我觉得应该是在高并发的情况下才会产生) 假设的一个场景是系统一 ...

  4. Android源码编译常见错误(持续更新)

    本文为个人工作中处理遇到的编译问题做个小结,后续遇到新的问题,持续更新. No such file or directory: 1. 检查路径是否有问题,文件是否存在,若文件存在且路径没问题 2. 检 ...

  5. react-native-storage 使用笔记 持续更新

    React-native-storage是在AsyncStorage之上封装的一个缓存操作插件库,刚开始接触这个也遇到了一些问题,在这里简单记录总结一下,碰到了就记下来,持续更新吧 1.安卓下stor ...

  6. Semantic ui 学习笔记 持续更新

    这个semantic 更新版本好快~ 首先是代码的标识<code></code> 具体样式就是红框这样的 圈起来代码感觉不错 不过要在semantic.css里在加上如下样式~ ...

  7. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  8. BLE资料应用笔记 -- 持续更新(转载)

    简而言之,蓝牙无处不在,易于使用,低耗能和低使用成本.’让我们’更深入地探索这些方面吧. 蓝牙无处不在—,您可以在几乎每一台电话.笔记本电脑 .台式电脑和平板电脑中找到蓝牙.因此,您可以便利地连接键盘 ...

  9. maven笔记--持续更新

    笔记: 在创建maven项目的时候,如果用到servlet的时候,需要导入包,这时候,需要导入本地仓库的jar包,即依赖包.语法如下 <dependency> <groupId> ...

随机推荐

  1. C++学习 之 指针及动态内存分配(笔记)

    1. 指针 1.1 指针的含义: 简单来说,指针是存储内存地址的变量.当我们声明了一个指针变量后,使用该指针时系统会根据指针内的地址索引内存块,读取内存内的值.指针因为是用来存地址的,所以一般固定长度 ...

  2. 蚂蚁分类信息商家发布文章、商品外链及远程图片自动添加nofollow属性

    蚂蚁商户发布文章.商品是可以添加外链或者直接用外部图片,但是这对分类网站运营不利. 所以要对外链进行过滤,演示网站保洁,蚂蚁分类的源码. 下面就说下怎么处理自动给外链自动加上nofollow属性. 1 ...

  3. Django的MySQL Driver配置

    PEP 249规定了Python的数据库API.MySQL主要有三种API实现: MySQLdb 是Andy Dustman开发的.使用原生代码/C语言绑定的驱动,它已经开发了数十年. mysqlcl ...

  4. MySQL面试题(二)

    ● 请你说一说mysql的四种隔离状态 参考回答: Mysql主要包含四种隔离状态: 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommitted) 是 是 是 不可重复读(rea ...

  5. shell脚本中的数组

    以下命令,都是以数组array=("20150417" "20150416" "20150415")为例. 注意bash中只支持一维数组,没 ...

  6. Could not determine which “make” command to run. Check the “make” step in the build configuration

    环境: QT5.10 VisualStudio2015 错误1: Could not determine which “make” command to run. Check the “make” s ...

  7. 从0开始Jmeter接口测试实战

    在之前的文章中给大家介绍过接口测试文档和接口测试用例示例,本文基于Jmeter工具给大家介绍一下如何实现接口测试用例:包括发起Http请求,绕过登陆,验证响应.JMeter是Apache组织开发的基于 ...

  8. nginx配置详解---学校资料

    #配置worker进程运行用户 nobody也是一个linux用户,一般用于启动程序,没有密码 user nobody; #配置工作进程数目,根据硬件调整,通常等于CPU数量或者2倍于CPU数量 wo ...

  9. DB2中常见sqlCode原因分析

    000 | 00000 | SQL语句成功完成 01xxx | SQL语句成功完成,但是有警告 +012 | 01545 | 未限定的列名被解释为一个有相互关系的引用 +098 | 01568 | 动 ...

  10. **JAVA参数传递方式 (按值传递与引用传递区别)

    https://blog.csdn.net/q5706503/article/details/82910428public class TestMain { public static void ma ...