使用HomeController的隐式自绑定激活HomeController时发生错误-NInject错误

问题描述 投票:2回答:3

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

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

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

激活路径:

  1. 请求HomeController

建议:

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

  2. 如果已经实现了Singleton模式,请改为使用InSingletonScope()进行绑定。

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

我在bin文件夹中有NInject.dll

无法确定...

asp.net-mvc ninject
3个回答
0
投票

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


0
投票

我有完全相同的问题,并以相同的方式解决。

出于参考目的,请注意,当我在各种服务器(我们的其中一台服务器使用相同的代码)上比较ninject.dll时,所有.dll文件的版本和大小都是相同的。

一位同事建议我下载一个名为Hashtab的工具,该工具确认dll的确存在差异。

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

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


0
投票

我在使用NInject遇到同样的问题时遇到了麻烦,没有阅读完整的消息。

确保您的构造器是公共的

地雷受到保护。希望可以节省别人的时间:)

© www.soinside.com 2019 - 2024. All rights reserved.