Windowsサービスは.NETアプリケーションです。このサービスは、EF 4.3 Code Firstを使用するデータアクセスに依存しています。サービスが実行され、データにアクセスしようとすると、次のエラーが発生します。 FullPurgeAndReplace()で発生したプロダクト(Win2008R2/64bit)ではなく、Dev(Win7/64bit)で10進数が動作します。共通言語ランタイムで無効なプログラムが検出されました
エラー: System.InvalidProgramException:共通言語ランタイムは 無効なプログラムを検出しました。 System.Data.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly [TEntity](機能
2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)
1.ReadNextElement(シェイパーでlambda_methodで System.Data.Entity.DynamicProxies.MOMInventoryItem_3ED5D5176D2C03867C62DD8E4381A882350CFD9CD931F3CD551623A6EF5C4D8E.set_Id(小数点 )(閉鎖、シェイパー)で同じマシン上で シェイパー) 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(IEnumerableを1 collection)
1ソース)で... より取り外した
at System.Linq.Enumerable.ToList[TSource](IEnumerable
は私が依存したWebアプリケーションを持っています同じデータアクセスプロジェクトで問題なく実行されます。IISのWebサイト私は32ビットアプリケーションを有効にして、それぞれのアプリケーションプールをチェックしています。
私はこの問題を調査し、エラーのエンティティ(MOMInventoryItem)に小数の主キーが含まれているという事実に関連している可能性があることを発見しました。私は既存のシステムと統合しているので選択肢はありません。しかし、それはおそらく1年以上前からのknown issue with EF 4.0だったと私はそれが今までに解決されることを期待するだろう。
[Table("STOCK")]
public class MOMInventoryItem
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None), Column("STOCK_ID")]
public virtual decimal Id { get; set; }
はやはり、これは、IISでホストされているMVCアプリを経由して正常に動作しますが、Windowsのサービスとして失敗し、両方同じWindows 2008 R2サーバー上:ここ
は私のエンティティからいくつかのコードです。私のDEVマシン(Win7/VS11)でも動作します。私の問題は何ですか?どうすれば解決できますか?いつも助けは非常に高く評価され、可能な限り往復する。
私も65ビットOSを実行したいと思います。この獣をどこで見つけることができますか? Best Buyは64ビットWindowsのみを搭載しています。ええ。私は余分なビットが必要です! –
LOL、うん、私はタイトルを訂正した、ありがとうDan - o! – kingdango
Aw man。ちょうどタイプミス!あなたはデジタルイルミナティで何らかの秘密の社会を持っていたと思って、最初の誕生日を余分に売ってしまったとか... :) –