添加MEF后,MVC应用程序崩溃

时间:2012-11-25 03:40:03

标签: c# asp.net-mvc mef

我正在为一个类开发一个开源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 + LT;&以及c _DisplayClass2,   Microsoft.SqlServer.Management.Smo.BackupSet + LT;> 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 + LT;> C_ DisplayClass25,   Microsoft.SqlServer.Management.Smo.DatabasePrefetchBase + d _1,   Microsoft.SqlServer.Management.Smo.ObjectScriptContainer + LT;> c__DisplayClass2,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,   原因:无法加载文件或程序集   ' Microsoft.SqlServer.SqlEnum,Version = 11.0.0.0,Culture = neutral,   公钥= 89845dcd8080cc91'或其中一个依赖项。该   系统找不到指定的文件。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我相信你错过了某处的参考资料。我将返回代码并确保所有“使用”语句都应该是这样,以及项目对程序集的引用。