我已经使用Entity Framework ,SQL Server 2000,Visual Studio 2008和Enterprise Library开发了一个应用程序。
它在本地绝对可以正常工作,但是当我将项目部署到测试环境时,出现以下错误:
无法加载一种或多种请求的类型。 检索LoaderExceptions属性以获取更多信息
堆栈跟踪:位于System.Reflection.Module._GetTypesInternal(StackCrawlMark&stackMark)
在System.Reflection.Assembly.GetTypes()
在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext上下文)
在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext上下文)处
在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(组装程序集,布尔值loadReferencedAssemblies,字典
2 knownAssemblies, Dictionary
2&typesInLoading,列表1&错误)在System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection,程序集程序集,布尔loadReferencedAssemblies)
在System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(类型类型)
在System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(类型类型,程序集callingAssembly)
在System.Data.Objects.ObjectContext.CreateQuery [T](字符串queryString,ObjectParameter []参数)处
实体框架似乎有问题,有什么线索如何解决?
#1楼
两种可能的解决方案:
- 您正在发布模式下进行编译,但是从Debug目录中部署了较旧的编译版本(反之亦然)。
- 您没有在测试环境中安装正确版本的.NET Framework。
#2楼
为此添加我的特定问题/解决方案,因为这是此错误消息的第一个结果。 就我而言,当我在IIS中第一个应用程序的文件夹中部署了第二个应用程序时收到了错误。 两者都用相同的名称定义连接字符串,导致子应用程序发生冲突,并进而生成此(对我而言)非显而易见的错误消息。 通过添加以下内容解决了该问题:
<clear/>
在子Web应用程序的连接字符串块中,阻止了子Web应用程序继承层次结构中更高级别的web.config文件的连接字符串,因此它看起来像:
<connectionStrings>
<clear/>
<add name="DbContext" connectionString="MySERVER" providerName="System.Data.SqlClient" />
</connectionStrings>
当我确定发生了什么时,参考堆栈溢出问题很有帮助, 子应用程序是否将从其父web.config继承? 。
#3楼
在配置文件中将32位IIS模式设置为true,将调试模式设置为true,删除temp
目录并重新设置IIS可以暂时解决此问题,并且在一段时间后会再次出现。
#4楼
如前所述,通常是不存在装配的情况。
要确切知道缺少的程序集,请附加调试器,设置一个断点,然后在看到异常对象时,深入到“ LoaderExceptions”属性。 缺少的程序集应该在那里。
希望能帮助到你!
#5楼
验证是否在Configuration Manager中正确设置了每个项目。
与William Edmondson导致此问题的原因类似,我将Configuration Manager设置从“调试”“任何CPU”切换为“调试”“ .NET”。 问题是“ .NET”版本未配置为构建所有项目,因此我的某些DLL已过期(而其他DLL是最新的)。 这在启动应用程序时引起了许多问题。
临时的解决方法是按照肯尼·埃里亚森的建议清除\\ bin和\\ obj目录。 但是,一旦我对非编译项目进行了更多更改,一切都会再次失败。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3192840