C# 现有的Umbraco Umbraco v6.0.5站点不会抛出为此对象定义的无参数构造函数

C# 现有的Umbraco Umbraco v6.0.5站点不会抛出为此对象定义的无参数构造函数,c#,asp.net-mvc,dependency-injection,ninject,umbraco,C#,Asp.net Mvc,Dependency Injection,Ninject,Umbraco,我已经建立了一个现有的Umbraco v6.0.5(组装版本:1.0.4869.18012)站点 前几天我买了一台新电脑,到现在为止,我所有的.NET项目都在上面运行良好 我已从Umbraco站点加载了相同的代码,该站点已在我的旧PC上投入生产和 当我点击继承的控制器时,站点现在抛出:没有为此对象定义无参数构造函数 是的,此控制器没有无参数构造函数,因为我使用ninject将接口注入以下代码: public SignupController(ISignupManager signupManage

我已经建立了一个现有的Umbraco v6.0.5(组装版本:1.0.4869.18012)站点

前几天我买了一台新电脑,到现在为止,我所有的.NET项目都在上面运行良好

我已从Umbraco站点加载了相同的代码,该站点已在我的旧PC上投入生产

当我点击继承的控制器时,站点现在抛出:没有为此对象定义无参数构造函数

是的,此控制器没有无参数构造函数,因为我使用ninject将接口注入以下代码:

public SignupController(ISignupManager signupManager)
{
    _signupManager = signupManager;
}
正如我所说,这段代码以前是有效的,没有任何变化,因为我刚刚从我的SVN回购中重新签出了工作代码

任何想法都很好。要记住的事情:

  • 我买了一台新机器,我正在使用旧机器上使用的所有工具
  • 该代码是经过验证的工作代码
  • 我使用的是Umbraco v6.0.5(装配版本:1.0.4869.18012)
  • CMS以及内容和模板等。。来自实时数据库的副本,所以都是一样的
我在想,要么我错过了翁布拉科需要的东西,要么我的依赖注入没有启动

这是我的堆栈跟踪:

at System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func)
at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride)
at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage)
at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm)
at System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, TextWriter textWriter)
at System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues)
at ASP._Page_Views_Donate_cshtml.Execute() in d:\Projects\Biggest Game Of Cricket\trunk\Umbraco\Views\Donate.cshtml:line 9
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
位于System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext RequestContext,类型controllerType)
位于System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext、IController和controller、IControllerFactory和factory)
位于System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext、AsyncCallback回调、对象状态)
在System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 Func)
位于System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler处理程序、TextWriter编写器、Boolean preserveForm、Boolean setPreviousPage、VirtualPath路径、VirtualPath文件路径、字符串physPath、异常错误、字符串queryStringOverride)
在System.Web.HttpServerUtility.Execute(IHttpHandler处理程序、TextWriter编写器、Boolean preserveForm、Boolean setPreviousPage)
在System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler处理程序、TextWriter编写器、布尔形式)
位于System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper、String actionName、String controllerName、RouteValueDictionary routeValues、TextWriter TextWriter)
位于System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper HtmlHelper,String actionName,String controllerName,RouteValueDictionary routeValues)
在ASP.\u页面\u视图\u捐赠\u cshtml.Execute()中的d:\Projects\magnet Game Of Cricket\trunk\Umbraco\Views\Donate.cshtml:第9行
在System.Web.WebPages.WebPageBase.ExecutePageHierarchy()中
在System.Web.Mvc.WebViewPage.ExecutePageHierarchy()中
位于System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext、TextWriter writer、WebPageRenderingBase起始页)
在System.Web.Mvc.ViewResultBase.ExecuteSult(ControllerContext上下文)中
在System.Web.Mvc.ControllerActionInvoker.c_uuDisplayClass1A.b_uuu17()中
位于System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter筛选器、ResultExecutingContext预文本、Func`1 continuation)
提前感谢您的帮助

RuSs

如果代码完全相同,则这将是一个机器配置问题。您是否同时安装了MVC3和MVC4

然而,听起来确实有些东西注册不正确。我知道你说这是一个全新/干净的结账,但这并不一定意味着所有需要的东西都已签入:)

我将检查项目之间是否存在相同的bin文件夹内容,以及您的依赖项注册代码是否在两个项目中都存在/正确。听起来您的global.asax文件可能没有使用Ninject注册码或使用不正确


这是否意味着缺少DLL引用(例如MVC4),或者global.asax标记是否从from类继承。

问题在于Ninject.Web.MVC DLL在我的本地计算机上的版本错误。我花了一整天才找到这个。thansk@Digbyswift

我有一个现有的ASP.NET MVC 4应用程序,我们最近将其与Umbraco 7集成。在MVCAPApplication的global.asax.cs文件中,有一个CreateKernel()方法,用于注册存储库和ServiceModule。由于Umbraco不使用Global.asax,我不确定如何以及在何处使用该方法。我真的很感兴趣你如何在你的Umbraco项目中使用Ninject。这对我很有用。如果您使用的是2013,则可以右键单击解决方案并选择“管理解决方案的NuGet软件包”。你应该寻找任何重复的。这可以节省浏览每个引用的version属性的时间。