zoukankan      html  css  js  c++  java
  • Surging填坑记

    某项目

    运行环境:net core 2.2
    数据库:mysql
    引用:Surging.Hero,一个经过某人改造的Surging框架。不知为何,这个Surging.Hero的github repo已经被删。

    在开发过程中,碰到了各种各样的坑,今记述如下:


    一、条件查询结果完全错误

    该框架内置了一个Dapper的扩展组件,支持linq查询。但是不知为何,查询的结果一直为空。用Profiler一查,发现select的where里,部分字段的字段名和值错位。例如:

    1 DateTime now=DateTime.Now;
    2 
    3 Table.Where(v=>v.A==1&&v.Date=now&&v.B="City");


    最后生成的结果居然是

    1 where A=1 AND Date is null AND B='2019-12-20'


    最后发现是Surging.Hero的作者不知从哪里扒来个根据linq生成表达式树的类,而这个类有bug,导致生成的sql错误。解决方案只能是自己写sql.


    二、BadImageFormatException

    三台机器:开发机A,服务器B,服务器C

    编译的代码用dotnet xxxx.dll运行,在A和B上一切正常,但是在C上报BadImageFormatException异常。

    通过出错信息得知错误点在Surging.Core.CPlatformModuleModuleProvider.cs的Initialize方法。加了点log语句后发现是在加载AutoMapperModule时异常的。

    这个异常一般和32/64位的dll有关。但是查看项目设置未发现端倪。而且直接在C上编译也不行。

    纠结几天后怀疑是框架引用的AutoMapper太旧。但是由于最新版AutoMapper改了不少东西,在框架源码里引入最新版AutoMapper后直接编译出错。这时注意到框架引用了AutoMapper.Attributes。AutoMapper.Attributes的最新版是6.0.1,引用了AutoMapper 5.0.2。于是去翻AutoMapper的github,发现AutoMapper7.0.0的Release Note里有一条,加入对net standard 2.0的支持。

    于是事情清楚了。

    在Surging.Core.AutoMapper里引入AutoMapper7.0.1,搞定收工。

  • 相关阅读:
    三种等待时间的区别
    多种测试的测试方法
    测试面试题总结
    自动化过程中定位不到元素时使用等待方法
    账号登录测试,多表查询
    TP商城添加购物车自动化测试
    二十四个球
    老鼠喝药
    购物车测试点
    前后端分页
  • 原文地址:https://www.cnblogs.com/firstrose/p/12168262.html
Copyright © 2011-2022 走看看