2014-05-06 18 views
10

我已將Web Api應用程序移植到Web Api 2並安裝了ninject web api pacckage。但現在我得到一個錯誤:NinjectHttpApplication在移植到web api後不工作2

Error activating ModelValidatorProvider using binding from ModelValidatorProvider to NinjectDefaultModelValidatorProvider 

A cyclical dependency was detected between the constructors of two services. 
+0

您是否有Nuget的Ninject.Web.WebApi 3.2.0.0? – sunil

+0

是的,這是正確的 –

回答

2

沒有設法使其工作。作爲一種解決方法,完全刪除Ninject.Web.WebApi包,現在使用ninject的手動滾動web api dependency resolver。 說實話,這很簡單,我真的沒有看到使用nuget包與ninject集成的理由。

+1

嗨,我遇到了同樣的問題,但我沒有引用Ninject.Web.WebApi包。我參考的唯一2是Ninject和Ninject.Web.Common。你的解決方案是什麼?你能否提供你正在使用的手動滾動網頁API依賴解析器? – MikeAtCodeSmart

+1

我意識到它可能已經太晚了,但它在這裏:https://gist.github.com/Deadarius/7d68b5d82a8a9ddad59e#file-ninjectdependencyresolver-cs –

+0

這個要點不會提供所有的基礎設施來實現web api 2注入。 –

18

我有這個相同的問題。當我將Ninject.Web.WebApi添加爲Nuget包時,我知道了。

要解決該問題,我必須刪除以前實施的解決方法。

在上一個解決方法中,我將NinjectWebCommon中的依賴關係解析器設置爲實現IDependencyResolver的自定義類。

總之,如果您在NinjectWebCommon的CreateKernel()中有類似於GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);的行,請將其刪除。

+0

謝謝。似乎解決方法是常見的地方:) –

+0

謝謝。刪除該行爲我工作。 – Hink

+0

這也適用於我。在安裝nuget包Ninject.Web之前,我自己應用了本文[link](http://www.peterprovost.org/blog/2012/06/19/adding-ninject-to-web-api/)中的解決方法。 .WebApi – Daniele