Ninject 激活 HttpConfiguration 时出错

Posted

技术标签:

【中文标题】Ninject 激活 HttpConfiguration 时出错【英文标题】:Ninject Error activating HttpConfiguration 【发布时间】:2017-01-01 02:34:27 【问题描述】:

我已将 NuGet 包:Ninject.Web.WebApi.WebHost 添加到我的 ASP.NET Web API 项目中,但是,一旦我添加了所有 DI 绑定,就会收到以下错误消息:

激活 HttpConfiguration 时出错 有多个匹配的绑定可用。匹配绑定: 1) 从 HttpConfiguration 绑定到方法 2) 从 HttpConfiguration 绑定到方法 激活路径:1) 请求HttpConfiguration 建议: 1)确保您已经定义了一个绑定 HttpConfiguration 只有一次。

这些是与 Ninject.Web.WebAPI.WebHost 一起添加的 NuGet 包:

    Ninject v. 3.2.2 Ninject.Web.Common v. 3.2.3 Ninject.Web.Common.WebHost v. 3.2.3 Ninject.Web.WebApi v. 3.2.4 Ninject.Web.WebApi.WebHost v. 3.2.4

我不知道如何解决这个问题,因为我能够让它在以前的项目中运行,但这个项目似乎不管出于何种原因都无法运行。

我也经常在所有这些版本的程序集中遇到此错误消息:

确保控制器有一个无参数的公共构造函数

有时我可以使用旧版本的 Ninject 程序集正确构建项目,但我经常收到错误消息:

序列不包含任何元素

我发现解决此错误的唯一方法是删除 bin 目录并重新构建,但我不明白为什么我每次都必须删除 bin 目录才能让 Ninject 正常工作。

请告知如何让 Ninject 与 Web API v.2.2 一起正常工作

【问题讨论】:

你有没有想过这个问题。在我的 ninject 中,有一次我看到了两个 HttpConfiguration 实例。 【参考方案1】:

我通过here找到了解决方案。

简而言之,解决方案是将所有 Ninject 包都设置为相同的版本。对 HttpConfiguration 的东西进行了改组,如果你有不同版本的不同 Ninject 包,它可以存在于多个地方。将所有内容升级到相同版本应该可以解决此问题。

【讨论】:

以上是关于Ninject 激活 HttpConfiguration 时出错的主要内容,如果未能解决你的问题,请参考以下文章

Ninject之旅之七:Ninject依赖注入

依赖注入(DI)和Ninject,Ninject

Ninject

使用 Ninject

Ninject之旅之八:Ninject插件模型

Ninject之旅之五:Ninject XML配置