我有一个ASP.NET MVC 3应用程序。它使用Visual Studio 2012 RC下的IIS Express在我的本地计算机上成功运行。
但是它似乎未在我的服务器/主机上运行。我收到以下错误:
使用隐式自绑定激活HomeController时出错HomeController没有构造函数可用于创建的实例实现类型。
激活路径:
- 请求HomeController
建议:
确保实现类型具有公共构造函数。
如果已经实现了Singleton模式,请改为使用InSingletonScope()进行绑定。
我已经在网上搜索了,找不到解决方案。它看起来是一个错误,因为我的HomeController中没有定义构造函数或没有私有构造函数,但是事实并非如此。
我在bin文件夹中有NInject.dll
。
无法确定...
这确实是NInject.dll问题。我之前使用的是.NET 4.5,而Web主机具有.NET 4.5。所以我将应用程序切换到.NET 4.0。后来我从已经运行的应用程序中获取了一个NInject.dll,并将其替换为当前应用程序的dll即可。
我有完全相同的问题,并以相同的方式解决。
出于参考目的,请注意,当我在各种服务器(我们的其中一台服务器使用相同的代码)上比较ninject.dll时,所有.dll文件的版本和大小都是相同的。
一位同事建议我下载一个名为Hashtab的工具,该工具确认dll的确存在差异。
[在我们所有的服务器上,站点都设置为在.NET4.0下运行,但是在工作的服务器上,安装了.NET4.5 ...站点运行的应用程序池是.NET4,但显然具有.NET4。 5安装后添加了一些文件。
如果有疑问,请删除.dll,确保将您的项目配置为在.NET Framework的正确版本下进行构建,然后通过NuGet添加dll。
我在使用NInject遇到同样的问题时遇到了麻烦,没有阅读完整的消息。
确保您的构造器是公共的
地雷受到保护。希望可以节省别人的时间:)