My Windows Service è un'applicazione .NET. Il servizio ha una dipendenza dal mio accesso ai dati che utilizza EF 4.3 Code First. Ho ricevuto il seguente errore quando il mio servizio è in esecuzione e tenta di accedere ai dati.Decimale come chiave primaria funziona in Dev (Win7/64bit) ma non in produzione (Win2008R2/64bit) Common Language Runtime ha rilevato un programma non valido
errore si è presentato in FullPurgeAndReplace(): System.InvalidProgramException: Common Language Runtime rilevamento di un programma valido . a System.Data.Entity.DynamicProxies.MOMInventoryItem_3ED5D5176D2C03867C62DD8E4381A882350CFD9CD931F3CD551623A6EF5C4D8E.set_Id (decimale ) a lambda_method (chiusura, Shaper) a System.Data.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly [TEntity] (FUNZ
2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)
1.ReadNextElement (Shaper shaper) a System.Data.Common.Internal.Materialization.Shaper
at lambda_method(Closure , Shaper) at System.Data.Common.Internal.Materialization.Coordinator1.SimpleEnumerator.MoveNext() at System.Collections.Generic.List
1..ctor (IEnumerable1 collection)
1 fonte) ... più rimosso
at System.Linq.Enumerable.ToList[TSource](IEnumerable
sulla stessa macchina ho un'applicazione web che dipende sullo stesso progetto di accesso ai dati e viene eseguito senza problemi. Per quel sito Web in IIS Ho abilitato le applicazioni a 32 bit per il rispettivo pool di applicazioni.
Ho cercato il problema e ho scoperto che potrebbe essere correlato al fatto che l'entità nell'errore (MOMInventoryItem) ha una chiave primaria decimale. Non ho scelta da quando mi sto integrando con un sistema esistente. Tuttavia, quello era presumibilmente un known issue with EF 4.0 da oltre un anno fa e mi aspetterei che venga risolto a questo punto.
Ecco il codice dal mio Entità:
[Table("STOCK")]
public class MOMInventoryItem
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None), Column("STOCK_ID")]
public virtual decimal Id { get; set; }
Ancora una volta, questo funziona bene tramite un app MVC ospitati in IIS, ma non riesce come servizio di Windows, sia sullo stesso server Windows 2008 R2. Funziona anche sulla mia macchina DEV (Win7/VS11). Qual è il mio problema e come potrei risolverlo definitivamente o aggirarlo?
Come sempre l'aiuto è molto apprezzato e ricambiato quando possibile.
Anch'io vorrei eseguire un sistema operativo a 65 bit. Dove posso trovare questa bestia? Best Buy supporta solo Windows a 64 bit. UHG. Ho bisogno di quel pezzo in più! –
LOL, sì ho corretto il titolo, grazie Dan-o! – kingdango
Aw man. Solo un errore di battitura! Pensavo avessi una specie di società segreta con gli illuminati digitali e hai venduto il tuo primogenito per un po 'di più ... o qualcosa del genere. :) –