2015-09-21 21 views
0

我有一個Windows桌面應用程序使用EF4(我知道它是舊的)作爲ORM連接到數據庫,我在Windows 10上遇到了一個奇怪的問題我爲數據庫中的一種對象類型調用「Any」。以下爲例外:調用System.Linq.Enumerable.Any拋出Windows 10上的異常

異常的信息:

System.TypeInitializationException堆棧:在 System.Data.Objects.ObjectQuery 1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetResults(System.Nullable 1) 在System.Data.Objects.ObjectQuery 1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Data.Entity.Internal.Linq.InternalQuery 1 [系統.__佳能, mscorlib程序,版本= 4.0.0.0,文化=中性 公鑰= b77a5c561934e089]]。的GetEnumerator()在 System.Data.Entity.Infrastructure.DbQuery 1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() at System.Linq.Enumerable.Any[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable 1) 在 Bootstrapper.LoginModel.HasUserAcceptedTraining(Int32)已

我已經試過完全相同的應用程序在不同的Windows,並在另一臺Windows 10的機器,它沒有發生。我曾嘗試以下:

  1. 經過數據庫,它是精細
  2. 經過.NET版本相比它與Windows 10計算機應用程序的工作就可以了罰款,這是相同的(目標4.0版。 0,版本4.6.0079,版本393295)
  3. 試圖融合日誌,看看是否有任何加載裝配
  4. 重新安裝應用程序的任何問題 - 沒有變化

我不知道是什麼否則我可以o找到問題?有沒有人在Windows 10上遇到過這樣的問題?對此有何想法?

更新: 我已經添加了異常處理的應用程序,現在這是我運行該應用程序後,得到異常:

[2015-09-08 13:21:07.8404] [錯誤] - 在方法MainForm_Load中發生異常 - 詳細信息:'ProxyTypeBuilder'的類型初始值設定項引發異常,在System.Data.Objects.Internal.EntityProxyFactory.ProxyTypeBuilder.MarkAsNotSerializable(FieldBuilder字段) at System.Data.Objects.Internal.EntityProxyFactory .ProxyTypeBuilder.RegisterInstanceField(FieldBuilder字段,布爾型可串行化) at System.Data.Objects.Internal.LazyLoadImplementor.Implement(Type生成器類型構建器,操作2 registerField) at System.Data.Objects.Internal.EntityProxyFactory.ProxyTypeBuilder.get_TypeBuilder() at System.Data.Objects.Internal.EntityProxyFactory.ProxyTypeBuilder.CreateType(ModuleBuilder moduleBuilder) at System.Data.Objects.Internal.EntityProxyFactory.BuildType(ModuleBuilder moduleBuilder, ClrEntityType ospaceEntityType) at System.Data.Objects.Internal.EntityProxyFactory.TryCreateProxyType(EntityType ospaceEntityType) at System.Data.Objects.Internal.EntityProxyFactory.GetProxyType(ClrEntityType ospaceEntityType) at System.Data.Common.Internal.Materialization.Translator.Visit(EntityColumnMap columnMap, TranslatorArg arg) at System.Data.Query.InternalTrees.EntityColumnMap.Accept[TResultType,TArgType](ColumnMapVisitorWithResults 2 visitor,TArgType arg) at System.Data.Common.Internal.Materialization.Translator.ProcessCollectionColumnMap(CollectionColumnMap columnMap,TranslatorArg arg,ColumnMap discriminatorColumnMap,Object discriminatorValue) at System.Data.Common.Internal.Materialization .Translator.Visit(SimpleCollectionColumnMap columnMap,TranslatorArg ARG) 在System.Data.Query.InternalTrees.SimpleCollectionColumnMap.Accept [TResultType,TArgType](ColumnMapVisitorWithResults 2 visitor, TArgType arg) at System.Data.Common.Internal.Materialization.Translator.TranslateColumnMap[TRequestedType](QueryCacheManager queryCacheManager, ColumnMap columnMap, MetadataWorkspace workspace, SpanIndex spanIndex, MergeOption mergeOption, Boolean valueLayer) at System.Data.Common.Internal.Materialization.ShaperFactory.TypedShaperFactoryCreator 1.TypedCreate(QueryCacheManager CacheManager中,columnMap columnMap,MetadataWorkspace元數據,SpanIndex spanInfo,mergeOption mergeOption ,Boolean valueLayer) at System.Data.Common.Internal.Materialization.ShaperFactory.Create(Type elementType,QueryCacheManager cacheManager,ColumnMap columnMap,MetadataWorkspace metadata,SpanIn dex spanInfo,MergeOption mergeOption,Boolean valueLayer) at System.Data.Objects.Internal.ObjectQueryExecutionPlan。準備(ObjectContext的背景下,DbQueryCommandTree樹,類型元素類型,MergeOption mergeOption,跨度跨度,ReadOnlyCollection 1 compiledQueryParameters, AliasGenerator aliasGenerator) at System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable 1 forMergeOption) 在System.Data.Objects.ObjectQuery 1.GetResults(Nullable 1 forMergeOption) 在System.Data.Objects.ObjectQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Data.Entity.Internal.Linq.InternalQuery 1.GetEnumerator() 在System.Data.Entity.Infrastructure.DbQuery 1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() at System.Linq.Enumerable.Any[TSource](IEnumerable 1源) 在HasUserAcceptedTraining(用戶ID的Int32)

+0

'System.TypeInitializationException' - 這是99.99%的一個缺少某些DLL的問題,該DLL中的類型無法初始化(一旦您使用它),因爲該DLL缺失。你應該仔細檢查那個方向。也許有些DLL應該已經安裝在其他版本的Windows上,但已經在Windows 10中刪除。 – Hopeless

+0

據我記得,如果一個程序集缺少融合日誌報告給你。我已啓用fusionlog,並沒有報告任何缺少的程序集。除此之外,相同的安裝程序還可以在其他Windows 10安裝(具有相同版本和.NET版本號)上運行。 – Poseidon

+0

這是什麼數據庫? MSSQL或其他什麼? –

回答

0

我無法修復的問題,所以我所做的就是重新安裝了Windows,現在它工作正常!