软件详情: C#,ASP.NET MVC,SQL Server 2008中(版本相同& SP级别),LINQ到SQL ORM“指定的转换无效” 错误的过程中节省LINQ到SQL实体
我试图诊断异常我收到:
"Specified cast is not valid." at System.Data.Linq.IdentityManager.StandardIdentityManager.SingleKeyManage`2.TryCreateKeyFromValues(Object[] values, V& v)
at System.Data.Linq.IdentityManager.StandardIdentityManager.IdentityCache`2.Find(Object[] keyValues)
at System.Data.Linq.IdentityManager.StandardIdentityManager.Find(MetaType type, Object[] keyValues)
at System.Data.Linq.CommonDataServices.GetCachedObject(MetaType type, 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 System.Data.Linq.DataContext.SubmitChanges()
at Repository.Save() at etc....
的问题是,这是发生只在我们的服务器上,而不是在我们当地的发展框。我已将其追踪到我们正在修改的单个媒体资源:
event.SalesForceId = "701Q0000000AOTIIA4";
如果我注释掉该行,则一切正常。
我已经试过:
1)打蜡的所有代码的服务器和重新部署上。同样的问题。
2)拉下服务器数据库的副本并在本地尝试。工作正常。
3)尝试另一个IIS环境,我们已经安装在同一个盒子上。同样的问题。
4)物理比较(使用AdeptSQL)本地和远程模式。没有区别。
5)验证两列(本地和远程)的数据类型是相同的。此外,此列是另一个表的FK。我验证了两者都是相同的数据类型,直到整理。
服务器是Windows Server 2008,本地盒子是Windows 7 x64。两者都有重要的更新设置。
我能想到的唯一可能是因为数据库和Web服务器在不同的盒子上可能是一个问题?否则,我完全被难住了。
任何想法?
最后一次调用中`V`的类型是什么?使用调试器来看看。 – leppie 2011-01-26 04:16:16
另外,.NET 3.5或4.0? – leppie 2011-01-26 04:17:03
这是.net 3.5,而不是4,应用了所有的服务包。另外,我不能使用调试器来逐步浏览它,因为它在服务器上。远程调试也不是一个选项。 – gcaprio 2011-01-26 17:00:13