3

我有一个 ASP.NET MVC 3 应用程序。它在我的本地机器上成功运行,使用 Visual Studio 2012 RC 下的 IIS Express。

但它似乎没有在我的服务器/主机上运行。我收到以下错误:

使用 HomeController 的隐式自绑定激活 HomeController 时出错 没有构造函数可用于创建实现类型的实例。

激活路径:

  1. 请求 HomeController

建议:

  1. 确保实现类型具有公共构造函数。

  2. 如果您已经实现了单例模式,请改用 InSingletonScope() 的绑定。

我已经搜索了整个网络,找不到解决方案。它看起来是一个错误,因为我的 HomeController 中没有定义构造函数或私有构造函数,但事实并非如此。

NInject.dll在 bin 文件夹中..

想不通...

4

3 回答 3

2

我在使用 NInject 时遇到了同样的问题,并且没有阅读整个消息。

确保您的构造函数是公开的

我的受到保护。希望能节省别人的时间:)

于 2020-04-24T22:06:04.603 回答
0

这确实是一个 NInject.dll 问题。我之前使用的是 .NET 4.5,而 Web 主机使用的是 .NET 4.5。所以我将我的应用程序切换到 .NET 4.0。后来我从一个已经运行的应用程序中提取了一个 NInject.dll 并将其替换为当前应用程序的 dll 并且它可以工作。

于 2012-11-17T14:52:11.190 回答
0

我有完全相同的问题并以相同的方式修复它。

为了提供信息,请注意,当我比较不同服务器上的 ninject.dll 时(我们的一个服务器使用相同的代码),所有 .dll 文件的版本和大小都相同。

一位同事建议我下载一个名为 Hashtab 的工具,该工具确认 dll 实际上是不同的。

在我们所有的服务器上,站点都设置为在 .NET4.0 下运行,但是在正常运行的服务器上,安装了 .NET4.5……站点运行的应用程序池是 .NET4,但显然安装了 .NET4.5添加了一些文件。

如果有疑问,请删除 .dll,确保您的项目配置为在正确版本的 .NET 框架下构建,然后通过 NuGet 添加 dll。

于 2014-08-22T08:24:46.320 回答