注:以下问题全部基于版本 © 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. 记java的那些编辑器的故事之凌嘉文+李晓彤-结对编程

    [写在前面]这次是复用个人项目进行结对编程,其实主要复用的就是凌老板的出题部分和我的文件读写部分,其余部分都是新学的.在这次编程中也涨了很多知识,其中最最最让人哭笑不得的就是:两个人用了不一样的编辑器 ...

  2. python_0基础开始_day12

    第十二节 一,生成器 生成器的核心:生成器的本质就是迭代器 迭代器是python自带的 生成器是程序员自己写的一种迭代器 在python中有三种方式来创建生成器: 基于函数编写 推导式方式编写 pyt ...

  3. python线程中的同步问题

    多线程开发可能遇到的问题 假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改1000000次,num的最终的结果应该为2000000.但是由于是多线程访问,有可能出现下面情 ...

  4. 简单的shell练习

    1.判断/etc/inittab文件是否大于100行,如果大于,则显示”/etc/inittab is a big file.”否者显示”/etc/inittab is a small file.”# ...

  5. leetcode题库

    leetcode题库 #题名题解通过率难度出现频率  1 两数之和     46.5%简单2 两数相加     35.5%中等3 无重复字符的最长子串     31.1%中等4 寻找两个有序数组的中位 ...

  6. Git复习(十一)之常见命令用法

    创建版本库 git init 进入一个文件,执行该命令此时目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了. ...

  7. qt treaview项checkbox样式

    QTreeView::indicator:enabled:checked { /** 指示器 - 选中 **/ image: url(yzfx/checkbox_checked.png);}QTree ...

  8. js动态添加行和列(table)

    function AddTableRow() { var Table = document.getElementById("NewTable"); //取得自定义的表对象 NewR ...

  9. openlayers之点,线,面(以城市,河流,省份为例,分别对应点线面)

    kpst._this这里指向初始化的map // 设置标注样式函数 function createStyle(name) { // 河流style var riverStyle = new Style ...

  10. 1.device-manage 优化

    一.当前简介 版本信息 device-manage:v1.0 mysql: 5.6.20 jdk : 1.8 Apache Maven 3.3.3 Spring4.2.5.RELEAS+SpingMV ...