今天测试了一个接口遇到一个问题不知道怎么定位bug,请大家帮忙看看。
在查询用户信息时,接口正常返回如下党(测试环境):
当替换成线上数据库时,json返回少了一个字段:
请问该问题如何定位??
是数据库问题么??
已经确认两个库都有vcDeviceCoding字段。
如果字段的值为空,序列化的时候会丢失字段。
字段有值呢
给两个图找问题太难了,一般是有人给你远程,看下怎么处理
你要看看接受数据的实体类中是不是有这个字段,你只说了替换了数据库,并没有说线上线下项目是否一致,很有可能,线上接受数据的实体类中没有这个字段,所以没映射出来等。
谢谢发言,查看了,类中有这个字段
数据库版本是一样的
@少年Dev: 代码的版本呢?
@人间春风意: 代码版本也一样,
@人间春风意: 差别就只是更换了数据库,因为必须备份生成环境的数据库测试,备份过来后就出这个问题
@少年Dev: 难道是数据问题?脏数据?
我建议查一下这个表的新增与编辑,不是代码的问题,就是脏数据的问题
@人间春风意: 脏数据如何查出来,哈哈😊
@人间春风意: 新增删除都没问题,对比了两个表,字段类型也都是nvarchar
@少年Dev: 脏数据其实还是代码版本变更造成的,看一下这条数据的创建时间,找一下当时正式区的版本,对比一下
测试环境有,而线上环境没有,如果库没有问题,可能是代码没更新,两个环境的代码版本不一致
代码版本用的是同一个版本,应该是数据库的问题,只是找不到原因,不知道怎么定位。
@少年Dev: 跟踪一下请求,看看请求地址走的哪个方法,然后能不能跟踪到SQL
语句,可以用fiddler
@三人乐乐: fidder如何跟踪sql语句,没试过
1。确认数据库中是否有字段;2。用Log记录代理查询的情况;3。程序问题,版本不一致,可以用dnSpy这种反编译工具查看代理
应该是数据库问题吧,差别就只是更换了数据库,前后端都一样
但是数据库查看了下确实有这个字段
@少年Dev: 有一种情况就是DLL文件不一致,所以建议用dnspy看一下DLL文件
如果是数据库 拷贝下正式环境 连测试库
系统环境一样,都是WindowsServer2016
而且正式环境连测试库也是正常返回的。
@少年Dev: 搞定了吗
@小鸣Cycling: 还没有,已经提bug,还没解决。
数据传输过程字段丢失,原因是字段名有约束