Entity Framework LoaderExceptions Impossible de charger un ou plusieurs des types demandés

entity-framework

Question

J'ai un service Web qui utilise le cadre d'entité. Lors de la publication dans un environnement de test, le message d'erreur suivant s'affiche:

"Impossible de charger un ou plusieurs des types demandés." - Trace de pile en dessous ...

.NET 3.5 SP 1 est installé dans la boîte de test et j’ai lu un précédent post ici:

Message d'erreur 'Impossible de charger un ou plusieurs des types demandés. Récupérez la propriété LoaderExceptions pour plus d'informations. '

Cependant, la réponse ne résout pas le problème dans mon cas. J'ai copié et collé la copie de travail de ma machine de développement sur la zone de test pour éviter tout problème de débogage des DLL (comme le suggère la réponse), mais aucune chance.

est-ce un problème connu? J'ai passé toute une matinée à essayer de résoudre ce problème !! Si quelqu'un connaît une solution, s'il vous plaît faites le moi savoir!

Retrieve the LoaderExceptions property for more information.   at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)
   at System.Reflection.Assembly.GetTypes()
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext context)
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext context)
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(Assembly assembly, Boolean loadReferencedAssemblies, Dictionary`2 knownAssemblies, Dictionary`2& typesInLoading, List`1& errors)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(Type type)
   at System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(Type type, Assembly callingAssembly)
   at System.Data.Objects.ObjectContext.CreateQuery[T](String queryString, ObjectParameter[] parameters)
   at Company.Domain.ICommuicationsEntities.CreateQuery[T](String queryString, ObjectParameter[] parameters)
   at Comany.EntityFrameworkRepository`1.GetQuery()
   at Comany.Repositories.EntityFrameworkRepository`1.GetFiltered(Expression`1 filter, IncludeBuilder`1 includeBuilder)
   at Comany.Repositories.EntityFrameworkRepository`1.GetFiltered(Expression`1 filter)

Réponse acceptée

Comme l'indique la ligne du haut de la pile:

Récupérez la propriété LoaderExceptions pour plus d'informations.

Vous pouvez trouver ceci en examinant l'exception dans le débogueur.


Réponse populaire

La première ligne de la trace de la pile "Récupérez la propriété LoaderExceptions pour plus d'informations" en est certainement la clé. Vous devrez intercepter l'exception ReflectionTypeLoadException ou lancer votre exception générale.

catch (System.Reflection.ReflectionTypeLoadException ex) {
    ex.LoaderExceptions;
} catch (Exception ex) {
    if (ex is System.Reflection.ReflectionTypeLoadException)
        ((System.Reflection.ReflectionTypeLoadException)ex).LoaderExceptions;
}

Vous pouvez ensuite vérifier la propriété LoaderExceptions pour savoir quelles références DLL peuvent être manquantes.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow