我有一个带有MEF系统的托管MVC 4应用程序。每次系统尝试创建由MEF注入的控制器时,都会发生以下错误:
该组合物产生单一组成错误。根本原因是 提供如下。查看CompositionException.Errors属性 更详细的信息。
1)指定的参数超出了有效值的范围。参数 名称:网站
导致:尝试创建实例时发生异常 类型'EAccountingControllers.EAccountingController'。
导致:无法激活部分 'EAccountingControllers.EAccountingController'。元件: EAccountingControllers.EAccountingController - > EAccountingControllers.EAccountingController - > AssemblyCatalog (Assembly =“EAccounting,Version = 1.0.0.0,Culture = neutral, 公钥=空“)
导致:无法获得导出 “EAccountingControllers.EAccountingController (ContractName =“EAccounting”)'来自部分 'EAccountingControllers.EAccountingController'。元件: EAccountingControllers.EAccountingController (ContractName =“EAccounting”) - > EAccountingControllers.EAccountingController - > AssemblyCatalog (Assembly =“EAccounting,Version = 1.0.0.0,Culture = neutral, 公钥=空“)
没关系如果我在我的本地IIS上托管,但是当我在外部托管服务提供商上托管时会产生错误。
导致此错误的原因是什么?
答案 0 :(得分:0)
尝试检查EAccountingController
的构造函数中发生的情况。我在Windows服务/控制台应用程序中遇到了同样的问题,事实证明我在加载的MEF部件的构造函数中有一个未处理的异常(由于我的开发和生产环境之间的环境差异)。
错误消息的关键部分是:
An exception occurred while trying to create an instance of type '[somenamespace.sometypename]'.
在您的情况下,它是EAccountingControllers.EAccountingController
。
这不是MEF错误,因为它是在尝试创建EAccountingController
的实例(即可能在构造函数中)时发生的未处理异常。
问题的答案可能在EAccountingController
内,以及创建实例时的作用。