【问题标题】:MVC app crashes after adding MEF添加 MEF 后 MVC 应用程序崩溃
【发布时间】:2012-11-25 03:40:02
【问题描述】:

我正在为一个班级开发一个开源 MVC 项目,一旦其他学生将 MEF 添加到项目中,它就停止运行了。它仍然适用于其他所有人

有关整个错误,请参阅以下内容

http://pastebin.com/7qjanN3b

这是错误页面每个部分的第一行 注意:

[ReflectionTypeLoadException: 无法加载一个或多个 请求的类型。检索 LoaderExceptions 属性以获取更多信息 信息。]

注意:这是错误页面上的一行,我认为这很奇怪。

[InvalidOperationException:编写 MEF 时发生错误 部分。类型:Microsoft.SqlServer.Management.Smo.SecurityUtils, Microsoft.SqlServer.Management.Smo.ExecutionManager, Microsoft.SqlServer.Management.Smo.ExecutionManager+ExecResult, Microsoft.SqlServer.Management.Smo.ExecutionStatus,

删除了几百行垃圾,完整错误请查看链接

Microsoft.SqlServer.Management.Smo.ScriptContainer, Microsoft.SqlServer.Management.Smo.ObjectScriptContainer, Microsoft.SqlServer.Management.Smo.IdBasedObjectScriptContainer, Microsoft.SqlServer.Management.Smo.TableScriptContainer, Microsoft.SqlServer.Management.Smo.ScriptContainerFactory, Microsoft.SqlServer.Management.Smo.SfcDiscoveryNode, Microsoft.SqlServer.Management.Smo.SfcHierarchyDiscovery, Microsoft.SqlServer.Management.Smo.SfcDependencyDiscovery, Microsoft.SqlServer.Management.Smo.SfcDependencyDiscovery+SfcNodeVisitor, Microsoft.SqlServer.Management.Smo.SfcDependencyDiscovery+ScriptListContext, Microsoft.SqlServer.Management.Smo.SmoDependencyDiscovery, Microsoft.SqlServer.Management.Smo.ErrorLocation, Microsoft.SqlServer.Management.Smo.DependencyDiscoveryError, Microsoft.SqlServer.Management.Smo.DependencyDiscoverySink, {6700AF61-4E8B-4423-BE3B-A43DE0C1B3B3}, {6700AF61-4E8B-4423-BE3B-A43DE0C1B3B3}+_StaticArrayInitTypeSize=24, Microsoft.SqlServer.Management.Smo.Server+d_0, Microsoft.SqlServer.Management.Smo.Database+d_0, Microsoft.SqlServer.Management.Smo.Database+d_3, Microsoft.SqlServer.Management.Smo.CpuCollection+d_0, Microsoft.SqlServer.Management.Smo.BackupMediaSet+c_DisplayClass2, Microsoft.SqlServer.Management.Smo.BackupSet+c_DisplayClassa, Microsoft.SqlServer.Management.Smo.PropertyCollection+d_0, Microsoft.SqlServer.Management.Smo.ScriptMaker+d_2, Microsoft.SqlServer.Management.Smo.ScriptMaker+d_8, Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer+c_DisplayClass25, Microsoft.SqlServer.Management.Smo.DatabasePrefetchBase+d_1, Microsoft.SqlServer.Management.Smo.ObjectScriptContainer+c__DisplayClass2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 原因:无法加载文件或程序集 'Microsoft.SqlServer.SqlEnum,版本=11.0.0.0,文化=中性, PublicKeyToken=89845dcd8080cc91' 或其依赖项之一。这 系统找不到指定的文件。

【问题讨论】:

  • 运行 Win7 和 SQL Express 2008 sp3 并安装 sql manager。

标签: c# asp.net-mvc mef


【解决方案1】:

我首先要确认您的机器上的 GAC 中安装了 SqlEnum dll。您可以通过转到 C:\Windows\assembly 来检查这一点。如果缺少某些内容,您可能需要修复或重新安装 Sql 管理对象功能。还要检查您安装的版本是否与 MEF 尝试加载的版本相同。

如果您确实安装了它,请尝试使用Fusion Log Viewer。这可以帮助您find which dlls are failing to load,以及加载程序在尝试加载 dll 时所经历的步骤。这应该可以帮助您缩小问题的来源。

【讨论】:

  • SqlEnum DLL 是正确的,我将使用该工具,看看我想出了什么。
  • 有更多代表的人请标记一下它已经解决了我的问题。基本上它正在寻找版本 11.0.0.0 但我有 10.0.0.0 我假设这是 2008 和 2008 R2 之间的区别,我会升级看看是否有帮助。
  • Verified Fixed 2012 SQL express install 解决了这个问题。
【解决方案2】:

我相信您在某处缺少参考。我将回顾代码并确保您的所有“使用”语句都是应有的,以及项目对程序集的引用。

【讨论】:

  • 正如我所说,该程序为其他所有人运行,这让我认为代码很好。我只是不确定缺少使用如何导致这种情况。 //评论编辑规则有点笨
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多