在我升级到ASPNETZEROV4.X之后,我遇到了不同风格的ASPNETZERO/ABP模板的奇怪验证错误。我正在从事多个项目,我使用的是.NET MVC5模板、.NET Core模板和带有BSB管理主题的.NET开源模板。在所有这些不同的项目中,我都得到了同样的验证信息。下面是一个例子。
有人知道我怎么找出这个错误的根本原因吗。如何调试ABP验证代码以查找此错误的根本原因?另外,有时错误不会出现,应用程序服务调用也会正常执行。但是,你再试一次完全相同的,一分钟后,它失败了!
发布于 2017-08-12 21:20:38
所以今天,我找到了一条错误消息,被记录在内部日志文件中。我发现了下面记录的错误。
Newtonsoft.Json.JsonSerializationException:将值{null}转换为类型'System.Decimal‘的错误。路径‘宽度’,第1行,位置99。-> System.InvalidCastException:空对象不能转换为值类型。在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader读取器处的System.Convert.ChangeType(Object value,Type conversionType,IFormatProvider provider),对象值,CultureInfo区域性,JsonContract契约,类型targetType) --在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader读取器的Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader读取器的内部异常堆栈跟踪的末端--对象值、对象值、CultureInfo文化、JsonContract契约、targetType类型)、objectType、JsonContract契约、JsonProperty成员、JsonContainerContract containerContract、JsonContract objectType,( Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property,JsonConverter propertyConverter,JsonContainerContract containerContract,JsonProperty containerProperty,JsonReader reader,Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject,JsonReader reader,JsonObjectContract contract,JsonProperty成员,String id)
这是在我的一个十进制属性(宽度)上报告的,它是可选的,不是必需的。我用下面的代码将属性更改为接受null。
十进制?
更改之后,它解决了我的一个实体上的验证错误。我会检查其他项目是否有同样的问题。
https://stackoverflow.com/questions/45640236
复制相似问题