我们有一个在IIS上运行MSSQL 2016、EntityFramework和WCF服务的项目。在正常情况下一切都很好,但当工作负载增加时,EntityFramework在linq查询上抛出异常:
...到列表-〉.ctor -〉移动下一个-〉尝试读取到下一个元素-〉移动下一个-〉实体化行-〉具有下一个元素-〉lambda_方法-〉是否为DBNull-〉检查标头是否就绪
系统索引超出范围异常:索引超出数组的界限。
...第一个或默认值-〉移动下一个-〉尝试读取到下一个元素-〉移动下一个-〉实体化行-〉具有下一个元素-〉lambda_方法-〉获取GUID-〉获取SqlGuid
系统.无效转换异常:指定的转换无效。
...第一个或默认值-〉移动下一个-〉读取下一个元素-〉lambda_方法-〉获取值
系统操作无效异常:指定的从具体化的“System.Int32”类型到“System.Guid”类型的转换无效。
**注意:数据库表的列和数据模型的属性具有相同的类型。并且此错误与强制转换无关。
2条答案
按热度按时间ibps3vxo1#
这个问题会不会是你处理工作负载的方式?因为你正在尝试访问一个不存在的索引,或者它还没有在列表中存在(延迟)。我在这里找到一些文章WCF - IndexOutOfRange exception when instantiating ChannelFactory
luaexgnf2#
我认为这与https://github.com/dotnet/SqlClient/issues/659错误有关。我认为它已向后移植到.NET Framework:https://support.microsoft.com/help/5020622