MEF指定的参数超出了有效值的范围。参数名称:site

时间:2016-09-28 06:14:36

标签: c# .net asp.net-mvc mef

我有一个带有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上托管,但是当我在外部托管服务提供商上托管时会产生错误。

导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

尝试检查EAccountingController的构造函数中发生的情况。我在Windows服务/控制台应用程序中遇到了同样的问题,事实证明我在加载的MEF部件的构造函数中有一个未处理的异常(由于我的开发和生产环境之间的环境差异)。

错误消息的关键部分是:

  

An exception occurred while trying to create an instance of type '[somenamespace.sometypename]'.

在您的情况下,它是EAccountingControllers.EAccountingController

这不是MEF错误,因为它是尝试创建EAccountingController的实例(即可能在构造函数中)时发生的未处理异常。

问题的答案可能在EAccountingController内,以及创建实例时的作用。