现有 Umbraco Umbraco v6.0.5 站点抛出 没有为此对象定义无参数构造函数

本文关键字:Umbraco 对象 定义 构造函数 参数 v6 站点 现有 | 更新日期: 2023-09-27 18:36:51

我有一个现有的Umbraco v6.0.5(汇编版本:1.0.4869.18012)站点。

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

我已经从 Umbraco 站点加载了相同的代码,该代码已经在生产和我的旧 PC 上运行。

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

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

public SignupController(ISignupManager signupManager)
{
    _signupManager = signupManager;
}

正如我所说,这段代码以前工作过,没有任何变化,因为我刚刚从我的 SVN 存储库中重新签出了工作代码。

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

  • 有一台新机器,我正在运行我在旧机器上使用的所有相同工具
  • 代码是经过验证的工作代码
  • 我正在使用 Umbraco v6.0.5(程序集版本:1.0.4869.18012)
  • CMS和内容和模板等来自实时数据库的副本,因此都是一样的。

我在想,要么我可能错过了 umbraco 需要的一些东西,要么我的依赖注入没有触发。

这是我的堆栈跟踪:

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)

提前感谢任何帮助。

拉斯

现有 Umbraco Umbraco v6.0.5 站点抛出 没有为此对象定义无参数构造函数

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

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

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

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

问题是Ninject.Web.MVC DLL在我的本地版本是错误的。 只是花了我一整天的时间才找到这个。 谢谢@Digbyswift