gpt4 book ai didi

c# - Entity Framework 6.1.3 : InvalidOperationException after a few days of running

转载 作者:行者123 更新时间:2023-12-03 17:38:41 33 4
gpt4 key购买 nike

我有一个奇怪的问题。我有一个 Windows 服务。服务在 100 多台计算机上运行正常。但是在几天(甚至一个月)后,在其中的一些情况下,它开始抛出如下异常:

System.InvalidOperationException: The 'X' property on 'Y' could not be set to a 'System.String' value. You must set this property to a non-null value of type 'System.Int32'.

in System.Data.Entity.Core.Common.Internal.Materialization.Shaper.ErrorHandlingValueReader`1.GetValue(DbDataReader reader, Int32 ordinal)

in System.Data.Entity.Core.Common.Internal.Materialization.Shaper.GetPropertyValueWithErrorHandling[TProperty](Int32 ordinal, String propertyName, String typeName)

in lambda_method(Closure , Shaper )

in System.Data.Entity.Core.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)

in lambda_method(Closure , Shaper )

in System.Data.Entity.Core.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)

in System.Data.Entity.Core.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()

in System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)

in System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source)


数据库结构中的代码没有任何修改。在几个地方抛出异常。其他应用程序(不是 Windows 服务)使用相同的数据库正常运行。由于我可以检查某些查询运行正常,因此只有少数查询会引发此异常。类型多种多样。有时它不能从字符串转换为 int32,有时(在其他查询中)它不能从 int32 转换为字符串。
要解决此问题,我们必须重新启动 Windows 服务。
我的内存没有任何问题(我的第一个嫌疑人)。服务使用大约 100-150MB 的内存。
环境:Framework 4.0、EF 6.1.3、64位、SQL Server 2012 Express。

最佳答案

似乎需要在这里做很多日志记录工作。我的建议是,首先,调试案例并在代码抛出异常的每个地方写入日志。

作为预防措施,请尽量检查对象中的属性是否可转换 - 使用 int.TryParse :

if(int.TryParse(X, out intVar) 
{
}
else
{
//failed to convert
}

还可以使用 try catch 并使用确切的堆栈跟踪发出日志错误,这对于字符串异常更可取,因为您无法对字符串属性进行尝试解析。

这里没有简单的方法,你必须一点一点地挖掘它。

关于c# - Entity Framework 6.1.3 : InvalidOperationException after a few days of running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41839754/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com