414 Stimmen

Fehlermeldung 'Einer oder mehrere der angeforderten Typen können nicht geladen werden. Rufen Sie die Eigenschaft LoaderExceptions für weitere Informationen ab.'

Ich habe eine Anwendung entwickelt, die Entity Framework , SQL Server 2000, Visual Studio 2008 und Enterprise Library.

Lokal funktioniert es einwandfrei, aber wenn ich das Projekt in unserer Testumgebung bereitstelle, erhalte ich den folgenden Fehler:

Einer oder mehrere der angeforderten Typen können nicht geladen werden. Rufen Sie die Eigenschaft LoaderExceptions für weitere Informationen ab

Stack trace: at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)

bei 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)

Entity Framework scheint ein Problem zu haben, gibt es einen Hinweis, wie man es beheben kann?

18voto

mkorman Punkte 878

Wie bereits erwähnt, liegt es meist daran, dass eine Baugruppe nicht vorhanden ist.

Um genau zu wissen, welche Baugruppe Ihnen fehlt, schließen Sie Ihren Debugger an, setzen Sie einen Haltepunkt, und wenn Sie das Ausnahmeobjekt sehen, suchen Sie nach der Eigenschaft "LoaderExceptions". Die fehlende Assembly sollte dort zu finden sein.

Hoffentlich hilft das!

7voto

MrKhal Punkte 101

Stellen Sie sicher, dass Sie 32-Bit-Anwendungen auf IIS wenn Sie auf IIS deployen. Sie können dies in den Einstellungen Ihres aktuellen Anwendungspools festlegen.

6voto

Dean Punkte 81

Ich bin auf diesen Fehler bei einem ASP.NET 4 + SQL Server 2008 R2 + Entity Framework 4 Anwendung.

Auf meinem Entwicklungsrechner (Windows Vista 64-Bit) würde es problemlos funktionieren. Wenn ich es dann auf dem Server einsetze ( Windows Server 2008 R2 SP1), funktionierte es, bis die Sitzung ablief. Also würden wir die Anwendung bereitstellen und alles sah gut aus und dann lassen Sie es für mehr als die 20 Minuten Session-Timeout und dann würde dieser Fehler ausgelöst werden.

Um das Problem zu lösen, habe ich dieser Code im Blog von Ken Cox um die Eigenschaft LoaderExceptions abzurufen.

In meinem Fall war die fehlende DLL Microsoft.ReportViewer.ProcessingObjectModel (Version 10). Diese DLL muss im Verzeichnis GAC des Rechners, auf dem die Anwendung läuft. Sie finden es im Microsoft Report Viewer 2010 Redistributable Package, das auf der Microsoft Download-Seite verfügbar ist.

5voto

SteveCav Punkte 6441

Mein Fall dieses Problems endete mit einer fehlenden Referenz. In der app.config wurde auf eine Baugruppe verwiesen, die jedoch keinen Verweis im Projekt hatte.

5voto

miko Punkte 318

Ich habe zunächst den Fusion Log Viewer ausprobiert, aber das hat nicht geholfen also habe ich schließlich WinDbg mit der SOS-Erweiterung verwendet.

!dumpheap -stat -type Exception /D

Dann habe ich die FileNotFoundExceptions untersucht. Die Meldung in der Ausnahme enthielt den Namen der DLL, die nicht geladen wurde.

N.B., die /D geben Ihnen Hyperlinks zu den Ergebnissen, also klicken Sie auf den Link in der Zusammenfassung für FileNotFoundException. Daraufhin wird eine Liste der Ausnahmen angezeigt. Klicken Sie dann auf den Link für eine der Ausnahmen. Dadurch wird das !dumpobject dieser Ausnahme angezeigt. Dann sollten Sie einfach auf den Link für Message im Ausnahmeobjekt klicken können, und Sie werden den Text sehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X