IIS6 + MVC3 +依赖项注入错误

问题描述

| 我正在用MVC开发Web应用程序,并在iis7.5服务器上进行了测试,并且一切正常。但是,在生产服务器上安装时,出现以下错误
[MissingMethodException: No parameterless constructor defined for this object.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache) +98
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly,Boolean skipVisibilityChecks,Boolean fillCache) +241
   System.Activator.CreateInstance(Type type,Boolean nonPublic) +69
   System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext,Type controllerType) +67

[InvalidOperationException: An error occurred when trying to create a controller of type \'MyApp.Controllers.CompanyController\'. Make sure that the controller has a parameterless public constructor.]
   System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext,Type controllerType) +182
   System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext,Type controllerType) +80
   System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext,String controllerName) +74
   System.Web.Mvc.MvcHandler.ProcessRequestinit(HttpContextBase httpContext,IController& controller,IControllerFactory& factory) +196
   System.Web.Mvc.<>c__displayClass6.<BeginProcessRequest>b__2() +49
   System.Web.Mvc.<>c__displayClassb`1.<ProcessInApplicationTrust>b__a() +13
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func) +124
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext,AsyncCallback callback,Object state) +98
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,Object state) +50
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context,AsyncCallback cb,Object exTradata) +16
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8841400
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously) +184
阿尔吉安(Alguien)是魁北克人吗? PD:MVC3,EF4.1,Unity 2.0     

解决方法

您是否检查了用于该站点的应用程序池中配置的.net版本? 另外,您是否在生产服务器中安装了相同的.NET版本?