我有一件非常棘手的事情要做。我的项目有大约100个表,它们都是由LINQ映射的。在开发和测试环境中,一切工作正常。这些环境是带有SQL2008 sp1数据库的MS Win 2008 r2服务器。IIS和SQL位于不同的计算机上。现在,在MS Win 2003 x64 web场+地理群集SQL2008 IT的生产环境上无法工作。我得到的只是一个例外
System.IndexOutOfRangeException: Index was outside the bounds of the array. at
System.Data.Linq.IdentityManager.StandardIdentityManager.MultiKeyManager3.TryCreateKeyFr>om Values(Object[] values, MultiKey& k) at
System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache2.Find(Object[]
keyValues)
at System.Data.Linq.ChangeProcessor.GetOtherItem(MetaAssociation assoc, Object instance) at System.Data.Linq.ChangeProcessor.BuildEdgeMaps() at
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) at
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) at
ERS.IIMP.Services.ExposuresSrv.Update(Int32 ExpID, Int32 AssID)
Services\ExposuresSrv.cs`
我的问题是见鬼的。它们具有完全相同的DBML,数据库具有完全相同的结构(当我从prod获得数据库来测试和挂载它时,一切都很好),WEB服务器上的二进制文件也是一样的。我真的不知道该怎么办...有没有人发现Linq在一个环境下工作,而在第二个环境下不工作??我在这里真的迷路了。我真的希望你能帮助我:)
发布于 2010-06-10 05:17:43
有没有可能你的Windows2003web服务器场使用的是没有SP1的.NET 3.5,而你的开发机器有SP1?
在映射到另一端非主键的字段的外键周围有许多错误-一些错误在.NET 3.5 SP1中修复,一些错误在.NET 4.0中修复。
这将恰好在该代码路径中,并且结果通常是一个超出范围的索引(或者无效的强制转换)。
https://stackoverflow.com/questions/3007760
复制相似问题