Detalles de la aplicación: C#, ASP.NET MVC, SQL Server 2008 (misma versión & nivel SP), LINQ a SQL ORM"La conversión especificada no es válida" error al guardar LINQ a SQL entidad
estoy tratando de diagnosticar una excepción que estoy recibiendo:
"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....
El problema es que esto ocurre sólo en nuestros servidores, no en nuestras cajas de desarrollo local. He rastreado hacia abajo a una sola propiedad que estamos modificando:
event.SalesForceId = "701Q0000000AOTIIA4";
Si comento hacia fuera de esa línea, todo funciona bien.
He intentado:
1) depilación todo el código en el servidor y volver a desplegar. Mismo problema.
2) Tirando de una copia del servidor DB y probándolo localmente. Funciona bien.
3) Probando otro entorno IIS, hemos configurado en el mismo cuadro. Mismo problema.
4) Comparando físicamente (usando AdeptSQL) los esquemas locales y remotos. Sin diferencias
5) La verificación de los tipos de datos de ambas columnas (local y remota) es la misma. Además, esta columna es un FK a otra tabla. Verifiqué que ambos son del mismo tipo de datos, hasta la intercalación.
El servidor es Windows Server 2008 y el recuadro local es Windows 7 x64. Ambos tienen configuradas todas las actualizaciones importantes.
Lo único que se me ocurre es quizás porque la base de datos y el servidor web están en cajas diferentes que podrían ser un problema. De lo contrario, estoy completamente perplejo.
¿Alguna idea?
¿Cuál es el tipo de 'V' en esa última llamada? Usa el depurador para ver eso. – leppie
Además, .NET 3.5 o 4.0? – leppie
Esto es .net 3.5, no 4, con todos los paquetes de servicio aplicados. Además, no puedo usar el depurador para recorrerlo porque está en el servidor. La depuración remota tampoco es una opción. – gcaprio