2014-05-06 8 views
10

Ho portato la mia applicazione Web Api su Web Api 2 e installato ninject web api pacckage. Ma ora sto ottenendo un errore:NinjectHttpApplication non funziona dopo il porting su web api 2

Error activating ModelValidatorProvider using binding from ModelValidatorProvider to NinjectDefaultModelValidatorProvider 

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

Avete Ninject.Web.WebApi 3.2.0.0 da Nuget? – sunil

+0

Sì, è corretto –

risposta

2

Non è riuscito a farlo funzionare. Come soluzione alternativa, ho appena rimosso completamente il pacchetto Ninject.Web.WebApi e ora ho utilizzato il risolutore di dipendenze api web laminato a mano per ninject. Per essere onesti, è così semplice che non vedo davvero un motivo per usare questo pacchetto di nuget per l'integrazione con ninject.

+1

Salve, mi sto imbattendo nello stesso problema, ma non sto facendo riferimento al pacchetto Ninject.Web.WebApi. Gli unici 2 di riferimento sono Ninject e Ninject.Web.Common. Qual è stata la tua soluzione a questo? Puoi fornire il resolver di dipendenze api web laminato a mano che stai utilizzando? – MikeAtCodeSmart

+1

Mi rendo conto che probabilmente è già troppo tardi, ma eccolo qui: https://gist.github.com/Deadarius/7d68b5d82a8a9ddad59e#file-ninjectdependencyresolver-cs –

+0

Questo elenco non fornirà tutta l'infrastruttura per abilitare l'iniezione di Web api 2. –

18

Ho avuto lo stesso problema. Ho capito quando ho aggiunto Ninject.Web.WebApi come pacchetto Nuget.

Per risolvere il problema, ho dovuto rimuovere una soluzione alternativa che avevo implementato in precedenza.

Nella soluzione precedente, avevo impostato il resolver di risoluzione in NinjectWebCommon in una classe personalizzata che implementava IDependencyResolver.

In breve, se si dispone di una linea simile a GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel); in CreateKernel() di NinjectWebCommon, rimuoverlo.

+0

Grazie. Sembra che la soluzione alternativa fosse il luogo comune :) –

+0

Grazie. Rimozione di quella linea ha funzionato per me. – Hink

+0

Questo ha funzionato anche per me. Io stesso ho applicato la soluzione seguendo questo articolo [collegamento] (http://www.peterprovost.org/blog/2012/06/19/adding-ninject-to-web-api/), prima di installare il pacchetto nuget Ninject.Web .WebApi – Daniele

Problemi correlati