У меня есть веб-сервис, который использует структуру объекта. При выпуске в тестовую среду я получаю следующую ошибку:
"Невозможно загрузить один или несколько запрошенных типов." - След стека ниже ...
В тестовой коробке установлен .NET 3.5 SP 1, и я прочитал предыдущий пост здесь:
Однако ответ не решает его в моем случае. Я скопировал и вставил рабочую копию со своего компьютера разработчика в тестовую коробку, чтобы убедиться, что нет проблем с отладочными DLL-библиотеками (как следует из ответа), однако не повезло.
Это известная проблема? Я провел все утро, пытаясь отладить это !! Если кто-нибудь знает решение, пожалуйста, дайте мне знать!
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)
Как сказано в верхней строке стека:
Получите свойство LoaderExceptions для получения дополнительной информации.
Вы можете найти это, изучив исключение в отладчике.
Первая строка трассировки стека «Получить свойство LoaderExceptions для получения дополнительной информации», безусловно, является ключом к этому. Вам нужно будет перехватить ReflectionTypeLoadException или привести ваше общее исключение.
catch (System.Reflection.ReflectionTypeLoadException ex) {
ex.LoaderExceptions;
} catch (Exception ex) {
if (ex is System.Reflection.ReflectionTypeLoadException)
((System.Reflection.ReflectionTypeLoadException)ex).LoaderExceptions;
}
Затем вы можете проверить свойство LoaderExceptions, чтобы узнать, какие ссылки DLL могут отсутствовать.