Recientemente he cambiado a Ninject 2.0 liberación y empecé a recibir el siguiente error:error "Más de un fijaciones de juego están disponibles" cuando se utiliza Ninject.Web.Mvc 2.0 y ASP.NET MVC 1.0
Error occured: Error activating SomeController More than one matching bindings are available. Activation path: 1) Request for SomeController Suggestions: 1) Ensure that you have defined a binding for SomeController only once.
Sin embargo, no puedo encontrar cierta ruta de reproducción. A veces ocurre, a veces no ocurre. Estoy usando NinjectHttpApplication
para la inyección de controladores automáticos. Los controladores se definen en un conjunto separado:
public class App : NinjectHttpApplication
{
protected override IKernel CreateKernel()
{
INinjectModule[] modules = new INinjectModule[] {
new MiscModule(),
new ProvidersModule(),
new RepositoryModule(),
new ServiceModule()
};
return new StandardKernel(modules);
}
protected override void OnApplicationStarted()
{
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn("Sample.Mvc");
base.OnApplicationStarted();
}
/* ............. */
}
Quizás alguien esté familiarizado con este error.
¿Algún consejo?
FYI, no es exclusivo de ASP.NET MVC 1.0. Acabo de suceder en ASP.NET MVC 2.0 también. – mckamey
Creé un proyecto repro para esta situación y lo cargué en el grupo Ninject-dev. Con suerte, alguien reconocerá el problema. No pude ver una solución fácil. http://groups.google.com/group/ninject-dev/files – mckamey
FYI, he verificado que esto se solucionó en la versión 2.1.0.0 de NinjectNinject.Web.Mvc (MVC2). En la última versión, ya no es necesario llamar a RegisterAllControllersIn (...). – mckamey