我的日志中有一个来自OrmLiteWriteCommandExtensions的错误,我似乎找不到这种情况发生的地方。我没有丢失数据;当我将logfactiory设置为null时,它不会破坏任何错误;我已经将它设置为允许零日期,但这没有帮助。我不知道如何调试或绕过它。它用我无法追踪的语句堵塞了我的日志。
这发生在linux和windows上。
有谁知道怎么解决这个问题吗?
OrmLiteWriteCommandExtensions System.FormatException: String不能被识别为有效的DateTime。在ServiceStack.Text.Common.DateTimeSerializer.ParseShortestXsdDateTime(String dateTimeStr的System.DateTimeParse.ParseExact(String s,String格式,DateTimeFormatInfo dtfi,DateTimeStyles样式) at System.DateTime.ParseExact(String s,String format,IFormatProvider provider,DateTimeStyles style),at ServiceStack.OrmLite.Converters.DateTimeConverter.FromDbValue(Type fieldType,Object ServiceStack.OrmLite.OrmLiteWriteCommandExtensions.PopulateWithSqlReaderT
更新:
日志记录发生在nlog配置文件中的正确文件集中,但对于此异常,它不符合NLOG布局集中的格式设置(所有其他异常都符合!)。
布局字符串:${exception:format=type} ${machinename} ${logger} ${level} ${message} ${message}${onexception:异常发生:${exception:format=type,message,exception:format=type消息,方法}}
UPDATE2解决了:
所以这很有趣..。在我开始解释我是如何解决这个问题之前,我不得不说我不知道为什么它会写入正确的日志文件中,但是忽略所有记录错误的格式--这是另一条需要另一次杀戮的巨龙。
因此,问题在于mysql数据库中的varchar字段的生日为string,以及dotnet中的DateTime之间将字符串隐式转换为string,这是一个错误。
在将字段更改为数据库中的日期时间后,错误就消失了。
有趣的是,我不得不设置minlevel来跟踪它对数据库的调用,以获得上下文中的错误--但是它仍然忽略了所有错误格式,没有堆栈跟踪,没有sql语句,也没有与日志中的错误相关联的行号。
发布于 2017-01-26 13:19:18
因此,问题在于mysql数据库中的varchar字段的生日为string,以及dotnet中的DateTime之间将字符串隐式转换为string,这是一个错误。
在将字段更改为数据库中的日期时间后,错误就消失了。
有趣的是,我必须设置minlevel以便在上下文中通过调用数据库获得错误--但是它仍然忽略所有错误格式,没有堆栈跟踪,没有sql语句,也没有与日志中的错误相关联的行号。
https://stackoverflow.com/questions/41871243
复制相似问题