我已经建立了现有的Umbraco v6.0.5(汇编版本:1.0.4869.18012)网站。
前几天我有一台新电脑,直到现在,我所有的.NET项目都运行良好。
我已经在Umbraco网站上加载了相同的代码,该网站已经在我的旧PC上以和生产。
网站现在抛出:没有为此对象定义的无参数构造函数当我点击一个继承的控制器: RenderMvcController
是的,这个控制器没有无参数构造函数,因为我使用ninject将接口注入以下代码:
public SignupController(ISignupManager signupManager)
{
_signupManager = signupManager;
}
正如我所说,这段代码之前没有任何变化,因为我刚刚从我的SVN回购中检查了工作代码。
任何想法都会很棒。要记住的事情:
我在想,或许我可能会遗漏一些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)
提前感谢您的帮助。
拉斯
答案 0 :(得分:2)
如果代码完全相同,那么这将是一个机器配置问题。你是否安装了MVC3和MVC4?
然而,听起来确实没有正确注册。我知道你说这是一个新鲜/干净的结账,但这并不一定意味着所有必须签到的一切都已登记:)
我会检查项目之间是否存在相同的bin文件夹内容,以及两个项目中的依赖项注册代码是否存在/正确。您的global.asax文件可能没有使用Ninject注册码或者使用不正确。
这是否意味着缺少DLL引用(例如MVC4)或者global.asax标记是否继承自from class。
答案 1 :(得分:0)
问题是Ninject.Web.MVC DLL是我本地的错误版本。我花了一整天才找到这个。 thansk @Digbyswift