Entity Framework LoaderExceptions Ein oder mehrere der angeforderten Typen können nicht geladen werden

entity-framework

Frage

Ich habe einen Webdienst, der das Entitätsframework verwendet. Beim Freigeben einer Testumgebung erhalte ich die folgende Fehlermeldung:

Msgstr "Ein oder mehrere der angeforderten Typen können nicht geladen werden." - Stapelspur unten ...

In der Testbox ist .NET 3.5 SP 1 installiert, und ich habe hier einen vorherigen Beitrag gelesen:

Fehlermeldung 'Ein oder mehrere der angeforderten Typen können nicht geladen werden. Rufen Sie die LoaderExceptions-Eigenschaft ab, um weitere Informationen zu erhalten. '

Die Antwort löst es jedoch in meinem Fall nicht. Ich habe die Arbeitskopie von meinem Entwicklungscomputer in die Testbox kopiert und eingefügt, um sicherzustellen, dass es kein Problem mit Debug-DLLs gibt (wie die Antwort schon sagt), jedoch kein Glück.

Ist das ein bekanntes Problem? Ich habe einen ganzen Morgen damit verbracht, das zu debuggen !! Wenn jemand eine Lösung kennt, lass es mich wissen!

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)

Akzeptierte Antwort

Wie die oberste Zeile des Stapels sagt:

Rufen Sie die LoaderExceptions- Eigenschaft ab, um weitere Informationen zu erhalten.

Sie finden dies, indem Sie die Ausnahme im Debugger untersuchen.


Beliebte Antwort

Die erste Zeile der Stack-Ablaufverfolgung "Laden Sie die LoaderExceptions-Eigenschaft ab, um weitere Informationen zu erhalten" ist definitiv der Schlüssel dazu. Sie müssen die ReflectionTypeLoadException abfangen oder Ihre allgemeine Ausnahme umsetzen.

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

Sie können dann die LoaderExceptions-Eigenschaft überprüfen, um herauszufinden, welche DLL-Referenzen möglicherweise fehlen.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum