7

EntityDataSource がASP.NET (*.aspx) ページに存在する場合にのみ表示される問題があります。ページを更新したり ( ) もう一度表示したりすると、興味深いことが発生します。別のプロジェクトで試してみたので、Entity FrameworkF5のバグのようです。同じエラーが発生します。

要求されたタイプの 1 つ以上を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。例外の詳細: System.Reflection.ReflectionTypeLoadException: 1 つ以上の要求された型を読み込めません。詳細については、LoaderExceptions プロパティを取得してください。

スタックトレース:

[ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.]
   System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) +0
   System.Reflection.RuntimeModule.GetTypes() +4
   System.Reflection.Assembly.GetTypes() +78
   System.Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly() +32
   System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load() +25
   System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData) +160
   System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors) +166
   System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage) +316
   System.Data.Metadata.Edm.ObjectItemCollection.ExplicitLoadFromAssembly(Assembly assembly, EdmItemCollection edmItemCollection, Action`1 logLoadMessage) +53
   System.Data.Metadata.Edm.MetadataWorkspace.ExplicitLoadFromAssembly(Assembly assembly, ObjectItemCollection collection, Action`1 logLoadMessage) +93
   System.Data.Metadata.Edm.MetadataWorkspace.LoadFromAssembly(Assembly assembly, Action`1 logLoadMessage) +130
   System.Web.UI.WebControls.EntityDataSourceView.ConstructContext() +585
   System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +76
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +21
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
   System.Web.UI.WebControls.GridView.DataBind() +4
   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66
   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75
   System.Web.UI.Control.EnsureChildControls() +102
   System.Web.UI.Control.PreRenderRecursiveInternal() +42
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Control.PreRenderRecursiveInternal() +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496

この問題を解決するにはどうすればよいですか?

4

4 に答える 4

6

これは .NET 4.0 のバグであり、.NET 4.5 で修正する必要があります。考えられる解決策は、参照で「ローカルにコピー」を true に設定し、不要な参照を削除することです。

詳細については、要求されたタイプの 1 つ以上を読み込めません。EntityDataSource に接続されています

于 2012-10-08T10:07:10.607 に答える
3

issue Random 'Unable to load one or more of the requested types' Errors (588847) を参照してください:

EntityDataSource は、エンティティ データ モデルのすべてのエンティティ型を検出するために、参照されているすべてのアセンブリからすべての型を読み込もうとします。

すべてのDLLファイルが「ローカルにコピー」に設定されていることを確認する他の回答の手法を使用すると役立つ場合があります。それ以外の場合は、回避策を試してください: ContextTypeNameyour のプロパティをEntityDataSourceエンティティ コンテナー タイプの完全修飾名に設定します。

回避策は、私にとって問題を解決したものです。

于 2013-05-01T06:02:52.383 に答える
2

同じ問題が発生しましたが、実稼働環境に正しいDLLがないために発生することがわかりました。プロジェクトの参照のローカルコピー属性をtrueに設定できます。

詳細については、 エラーメッセージ'要求されたタイプの1つ以上をロードできませんを参照してください。詳細については、LoaderExceptionsプロパティを取得してください。

于 2011-07-19T10:11:17.137 に答える
1

今日も同じ問題が発生しましたが、本番サーバーでのみ発生し、開発やテストでは発生しませんでした(図)。何が起こっているのかはまだ調査中ですが、運用サーバーの.NET Trust LevelHighに変更すると、問題は解決しました...これは明らかに一時的な修正ですが、何もないよりはましです。これがお役に立てば幸いです。

于 2010-09-29T01:35:00.207 に答える