2012-07-24 69 views
2

我正在尝试部署一个使用Ninject for DI的网站,该网站在我的开发机器上本地运行良好(不是全部!)。 当部署到我的主机(使用Visual Studio FTP发布选项)我得到以下错误:Ninject DI导致部署问题

Method not found: 'System.Delegate System.Reflection.MethodInfo.CreateDelegate(System.Type)'. 

[InvalidOperationException: An error occurred when trying to create a controller of type 'Website.Controllers.HomeController'. Make sure that the controller has a parameterless public constructor.] 

看着堆栈跟踪似乎NinjectDependencyResolver.GetService(类型的serviceType )是失败的方法。 就像我说的那样,它在当地工作的很好,所以不知道在哪里或如何解决这个问题。 Googleing没有提供任何有用的信息。

我正在使用Ninject 3.0.1.10,如果相关。

编辑:因为我已经加入paramterless构造函数来HomeController的,但它并没有区别,并存在同样的错误....

+1

您是否已将所有相关的/所需的dll副本本地设置为true?听起来像你缺少一些组件。 – Tommy 2012-07-24 21:25:39

+1

你确定服务器正在运行.NET 4吗? – 2012-07-24 21:31:01

+0

@Mystere Man:详细的错误页面显示版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1 – LDJ 2012-07-25 06:32:29

回答

8

我认为你正在构建对.NET 4.5和部署.NET 4.0或者您在.NET 4.0上部署Ninject for .NET 4.5

+0

是的,将版本更改为4.0等瞧! – LDJ 2012-07-25 18:28:14

+1

每次我有一个ninject问题,过程是相同的。 Google => stackoverflow =>雷莫的答案=>成功。 – Brook 2013-02-13 16:00:57