2012-07-09 11 views
7

Acabo de instalar ELMAH MVC (v2) en mi aplicación web, pero cuando trato de ver los registros en/ELMAH consigo la siguiente excepciónELMAH MVC 2 - Problema con el castillo de Windsor

Ningún componente de apoyo el servicio Elmah.Mvc.ElmahController se encontró [ComponentNotFoundException: Ninguno de los componentes para soportar el servicio fue encontrado Elmah.Mvc.ElmahController] Castle.MicroKernel.DefaultKernel.Resolve (servicio de Tipo) 140 Castle.Windsor.WindsorContainer.Resolve (Escriba el servicio) +40 N2.Engine.Castle.WindsorServiceContainer.Resolve (Tipo de tipo) +40 N2.Engine.ContentEngine.Resolve (Tipo ser viceType) +48

El sitio web incluye el sistema N2 CMS que a su vez usa Castle Windsor.

¿Alguna idea sobre cómo puedo resolver esto?

Respuesta

0

Resolvió la solución poco después de publicar la pregunta. Que necesitaba para registrar el controlador Elmah con N2:

var engine = MvcEngine.Create(); 
engine.RegisterControllers(typeof(GlobalApplication).Assembly); 
engine.RegisterControllers(typeof(ElmahController).Assembly); 
0

ELMAH.MVC viene código App_Start, que utiliza para registrar Web.Activator ruta ElmahController.

Por lo tanto, es extraño para mí, por qué Windor no puede cargar ElmahController. De forma predeterminada, debería intentar resolverlo solo, y si no es posible, delegar en ControllerFactory.

¿Estás seguro de que la aplicación se reinició (iisreset.exe) después de instalar ELMAH?

+0

Hola Alexander, acabo de volver a probar para asegurar que había reiniciado IIS (IIS Express en este caso como en una máquina de desarrollo) I y definitivamente tengo que registrar el controlador Elmah con el motor N2 para poder ver los registros de Elmah – FloatLeft

+0

@alexanderb Hola Alex, también estoy usando Windsor con Elmah.MVC (la primera vez que tengo este sabor) y cuando voy a mysite.com/elmah recibo el mensaje "No hay ningún componente para admitir el servicio Elmah.Mvc.ElmahController era encontró". ¿Algún consejo? Además, no pude encontrar ninguna documentación dedicada en Elmah.MVC aparte de fragmentos en tu blog. –

+0

@DanB hola Dan, desafortunadamente es difícil diagnosticar el problema solo por "aire" :) .. Me gustaría pedirle un favor. ¿Podría levantar un problema en [github] (https: // github. com/alexanderbeletsky/elmah.mvc) y envió una solución "rota" a mi dirección de correo electrónico (en mi perfil). Prometo encontrar el problema y volví con la solución :) –

15

Sé que esto ya tiene una respuesta aceptada, y no es del todo relevante a su pregunta, pero para nadie más no usando N2 y se produzcan problemas con Elmah.MVC + castillo de Windsor, es necesario registrar los controladores de el ensamblaje Elmah.MVC con Windsor. Hice un instalador sencillo de manejar esto por mí:

public class ElamhInstaller : IWindsorInstaller 
{ 
    public void Install(IWindsorContainer container, IConfigurationStore store) 
    { 
     container.Register(Classes.FromAssemblyNamed("Elmah.Mvc") 
      .BasedOn<IController>() 
      .LifestyleTransient()); 
    } 
} 

Una vez añadí este castillo parece ser capaz de encontrar el ElmahController bien.

+0

Gracias.Lo único que tuve que cambiar para que mis pruebas de integración funcionaran en Team City fue "Classes.FromAssemblyNamed (" Elmah.Mvc ")" para este "Classes.FromAssembly (typeof (ElmahController) .Assembly)". Algún tipo de optimización eliminó el dll y obtuve "No se pudo cargar el archivo o el ensamblado 'Elmah.Mvc'" –

Cuestiones relacionadas