加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Ninject.Web.Common抛出ActivationException试图

发布时间:2020-12-16 07:34:59 所属栏目:asp.Net 来源:网络整理
导读:我不知道在哪里开始解决这个问题,但是在尝试运行我的ASP.NET MVC应用程序时遇到异常. 这是我得到的错误: [ActivationException: Error activating IntPtr No matching bindings are available,and the type is not self-bindable. Activation path: Injecti
我不知道在哪里开始解决这个问题,但是在尝试运行我的ASP.NET MVC应用程序时遇到异常.

这是我得到的错误:

[ActivationException: Error activating IntPtr

No matching bindings are available,and the type is not self-bindable.
Activation path:

  1. Injection of dependency IntPtr into parameter method of constructor of type Func{IKernel}
  2. Injection of dependency Func{IKernel} into parameter lazyKernel of constructor of type HttpApplicationInitializationHttpModule
  3. Request for IHttpModule

Suggestions:

  1. Ensure that you have defined a binding for IntPtr.
  2. If the binding was defined in a module,ensure that the module has been loaded into the kernel.
  3. Ensure you have not accidentally created more than one kernel.
  4. If you are using constructor arguments,ensure that the parameter name matches the constructors parameter name.
  5. If you are using automatic module loading,ensure the search path and filters are correct.

堆栈跟踪如下:

at Ninject.KernelBase.Resolve(IRequest request) in c:ProjectsNinjectninjectsrcNinjectKernelBase.cs:line 359
   at Ninject.Planning.Targets.Target`1.GetValue(Type service,IContext parent) in c:ProjectsNinjectninjectsrcNinjectPlanningTargetsTarget.cs:line 197
   at Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent) in c:ProjectsNinjectninjectsrcNinjectPlanningTargetsTarget.cs:line 165
   at Ninject.Activation.Providers.StandardProvider.GetValue(IContext context,ITarget target) in c:ProjectsNinjectninjectsrcNinjectActivationProvidersStandardProvider.cs:line 114
   at Ninject.Activation.Providers.StandardProvider.<>c__DisplayClass4.<Create>b__2(ITarget target) in c:ProjectsNinjectninjectsrcNinjectActivationProvidersStandardProvider.cs:line 96
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Ninject.Activation.Providers.StandardProvider.Create(IContext context) in c:ProjectsNinjectninjectsrcNinjectActivationProvidersStandardProvider.cs:line 96
   at Ninject.Activation.Context.Resolve() in c:ProjectsNinjectninjectsrcNinjectActivationContext.cs:line 157
   at Ninject.KernelBase.<>c__DisplayClass10.<Resolve>b__c(IBinding binding) in c:ProjectsNinjectninjectsrcNinjectKernelBase.cs:line 386
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
   at Ninject.Planning.Targets.Target`1.GetValue(Type service,ITarget target) in c:ProjectsNinjectninjectsrcNinjectActivationProvidersStandardProvider.cs:line 114
   at Ninject.Activation.Providers.StandardProvider.<>c__DisplayClass4.<Create>b__2(ITarget target) in c:ProjectsNinjectninjectsrcNinjectActivationProvidersStandardProvider.cs:line 96
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Ninject.Activation.Providers.StandardProvider.Create(IContext context) in c:ProjectsNinjectninjectsrcNinjectActivationProvidersStandardProvider.cs:line 96
   at Ninject.Activation.Context.Resolve() in c:ProjectsNinjectninjectsrcNinjectActivationContext.cs:line 157
   at Ninject.KernelBase.<>c__DisplayClass10.<Resolve>b__c(IBinding binding) in c:ProjectsNinjectninjectsrcNinjectKernelBase.cs:line 386
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.<CastIterator>d__b1`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Ninject.Web.Common.NinjectHttpModule.Init(HttpApplication context) in c:ProjectsNinjectNinject.Web.CommonsrcNinject.Web.CommonNinjectHttpModule.cs:line 41
   at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo[] handlers)
   at System.Web.HttpApplication.InitSpecial(HttpApplicationState state,MethodInfo[] handlers,IntPtr appContext,HttpContext context)
   at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)
   at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

这似乎不是每个人都得到的错误(至少,我的谷歌搜索没有发现任何用途),所以我假设我做了一些奇怪的事情,但我不知道从哪里开始调试这个.

我应该提一下,我正在使用几个Ninject库(Ninject,Ninject.Web.Common,Ninject.MVC3和Ninject.FluentValidation),所有这些都是3.0.00-RC3版本.我意识到如果我使用预发布库,所有的赌注都会关闭,但我有一种感觉我做错了,因为其他人似乎没有得到同样的错误.

关于问题可能是什么或我应该从哪里开始寻找的任何想法?

解决方法

您可以通过将这两个绑定添加到内核来解决此问题:

kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读