gpt4 book ai didi

asp.net - 使用 Ninject 将 MVC 4 应用程序部署到 Azure 时出错

转载 作者:行者123 更新时间:2023-12-03 04:39:14 26 4
gpt4 key购买 nike

我使用 Visual Studio 2012 RC 编写了一个 MVC 4 应用程序。它使用 Ninject 作为依赖项注入(inject)器,并且使用 Azure 模拟器在我的本地计算机上运行没有任何问题。该应用程序的目标是.NET 4.0。但是,当我将其作为 Web 角色部署到 Azure 时,我收到此异常:

[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) +117
System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +247
System.Activator.CreateInstance(Type type, Boolean nonPublic) +106
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +84

[InvalidOperationException: An error occurred when trying to create a controller of type 'Poller.WebUI.Controllers.QuestionsController'. Make sure that the controller has a parameterless public constructor.]
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +247
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +85
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +270
System.Web.Mvc.<>c__DisplayClass6.<BeginProcessRequest>b__2() +66
System.Web.Mvc.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a() +19
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func) +161
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +405
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375

我不想向 QuestionsController 添加无参数构造函数,因为我需要那里的数据库存储库,该存储库作为构造函数参数传递。该参数应由 Ninject 正确填写。

有人知道这里可能存在什么问题吗?

最佳答案

我也遇到了这个问题。我想说的是,在我们的例子中,我们必须确保我们的 MVC 应用程序使用的是 Windows 2008 R2,而不是 Windows 2008 SP1。您可以将配置文件更新为 OS="2" 或仅登录管理面板,选择您的 Web 角色并单击升级操作系统。无法确定这是否是您的问题,但这是我们在 MVC 3 网站上遇到的问题。

关于asp.net - 使用 Ninject 将 MVC 4 应用程序部署到 Azure 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11470415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com