sách gpt4 ai đã đi

dependency-injection - 忍者 + "Error loading Ninject component ICache"

In lại 作者:行者123 更新时间:2023-12-05 00:38:53 29 4
mua khóa gpt4 Nike

我刚刚从 NuGet 安装了新的 Ninject.MVC3 并试图让它在我的 asp.net mvc 3 应用程序中工作,但是我在浏览我的网站时不时收到这个奇怪的错误:

[InvalidOperationException: Error loading Ninject component ICache
No such component has been registered in the kernel's component container.

Suggestions:
1) If you have created a custom subclass for KernelBase, ensure that you have properly
implemented the AddComponents() method.
2) Ensure that you have not removed the component from the container via a call to RemoveAll().
3) Ensure you have not accidentally created more than one kernel.
]
Ninject.Components.ComponentContainer.Get(Type component) in d:\BuildAgent-01\work\b68efe9aafe8875e\src\Ninject\Components\ComponentContainer.cs:146
Ninject.Components.ComponentContainer.Get() in d:\BuildAgent-01\work\b68efe9aafe8875e\src\Ninject\Components\ComponentContainer.cs:102
Ninject.KernelBase.CreateContext(IRequest request, IBinding binding) in d:\BuildAgent-01\work\b68efe9aafe8875e\src\Ninject\KernelBase.cs:540
Ninject.<>c__DisplayClassa.b__6(IBinding binding) in d:\BuildAgent-01\work\b68efe9aafe8875e\src\Ninject\KernelBase.cs:375
System.Linq.<>c__DisplayClass12`3.b__11(TSource x) +20
System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +151
System.Linq.Enumerable.SingleOrDefault(IEnumerable`1 source) +4178557
Ninject.Web.Mvc.NinjectDependencyResolver.GetService(Type serviceType) in c:\Projects\Ninject\ninject.web.mvc\mvc3\src\Ninject.Web.Mvc\NinjectDependencyResolver.cs:56
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +51

[InvalidOperationException: An error occurred when trying to create a controller of type 'MyApp.Controllers.NewsController'. 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.b__2() +49
System.Web.Mvc.<>c__DisplayClassb`1.b__a() +13
System.Web.Mvc.SecurityUtil.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, AsyncCallback callback, 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() +8862580
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

我的代码是:

//AppStart_NinjectMVC3.cs
    using System.Web.Mvc;
using Ninject.Modules;

[assembly: WebActivator.PreApplicationStartMethod(typeof(MyApp.AppStart_NinjectMVC3), "Start")]

namespace MyApp
{
using Microsoft.Web.Infrastructure.DynamicModuleHelper;



using Ninject;

public static class AppStart_NinjectMVC3
{
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpApplicationModule));
}
}
}

//NinjectHttpApplicationModule.cs
using MyApp.Data;
using NHibernate;

namespace MyApp
{
using System;
using System.Web;

using Ninject;
using Ninject.Web.Mvc;

public sealed class NinjectHttpApplicationModule : IHttpModule, IDisposable
{
#region Ninject Mvc3 extension bootstrapper (Do not touch this code)
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
private static bool initialized;
private static bool kernelDisposed;

///
/// Initializes a module and prepares it to handle requests.
/// Do not change this method!
///

/// An that provides access to the methods, properties, and events common to all application objects within an ASP.NET application
public void Init(HttpApplication context)
{
lock (bootstrapper)
{
if (initialized)
{
return;
}

initialized = true;
bootstrapper.Initialize(CreateKernel);
}
}

///
/// Disposes the instance.
/// Do not change this method!
///

public void Dispose()
{
lock (bootstrapper)
{
if (kernelDisposed)
{
return;
}

kernelDisposed = true;
bootstrapper.ShutDown();
}
}
#khuvựccuối

///
/// Creates the kernel that will manage your application.
///

/// The created kernel.
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
RegisterServices(kernel);
return kernel;
}

///
/// Load your modules or register your services here!
///

/// The kernel.
private static void RegisterServices(IKernel kernel)
{
kernel.Bind().ToMethod(x => kernel.Get().CreateFactory().OpenSession()).InRequestScope();
kernel.Bind().ToMethod(x => kernel.Get().BeginTransaction()).InRequestScope();
kernel.Bind(typeof(IRepositoryBase<>)).To(typeof(RepositoryBase<>));
kernel.Bind().To();
}
}
}

大多数代码是您在通过 NuGet 安装时获得的默认代码。我所做的唯一一件事就是将一些绑定(bind)添加到 RegisterServices()
有什么建议么?

1 Câu trả lời

关于dependency-injection - 忍者 + "Error loading Ninject component ICache",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134630/

29 4 0
Bài viết được đề xuất: sql - 从 sql azure 发送电子邮件
Bài viết được đề xuất: programming-languages - 让一种语言同时提供按名称调用和按值调用怎么样?
Bài viết được đề xuất: .net - WCF 最佳实践的引用项目
Bài viết được đề xuất: wpf - WPF 内容的奇怪符号
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com