Pregunta

He migrado un proyecto MVC1 a MVC2 RC, y ahora el sitio no funciona en absoluto. Me sale "no se encontró punto de entrada." El error

He migrado el proyecto siguiente este enlace

Estoy usando el castillo de Windsor como DI.

Aquí está una parte de global.asax.cs

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", "{controller}/{action}/{id}", new { controller = "Main", action = "Index", id = "" });
    }

    protected void Application_Start()
    {
        log4net.Config.XmlConfigurator.Configure();
        InitializeServiceLocator();
        //RouteConfigurator.RegisterRoutesTo(RouteTable.Routes);
        AreaRegistration.RegisterAllAreas();
        RegisterRoutes(RouteTable.Routes);

        Bootstrapper.BootStrap();
    }

    /// <summary>
    /// If you need to communicate to multiple databases, you'd add a line to this method to
    /// initialize the other database as well.
    /// </summary>
    private void InitializeNHibernateSession()
    {
        var cfg =
            NHibernateSession.Init(
                webSessionStorage,
                new string[] { Server.MapPath("~/bin/Edi.Advance.EPortfolio.Data.dll") },
                new AutoPersistenceModelGenerator().Generate(),
                Server.MapPath("~/hibernate.cfg.xml")).AddAssembly(typeof(ISoftDeletable).Assembly).AddAssembly(
                typeof(Action).Assembly);

        //cfg.SetListener(ListenerType.Delete, new AdvanceDeleteEventListener(IoC.Resolve<ISecurityContextService>()));
        //cfg.SetListener(ListenerType.SaveUpdate, new AdvanceSaveUpdateEventListener(IoC.Resolve<ISecurityContextService>()));
    }

    /// <summary>
    /// Instantiate the container and add all Controllers that derive from 
    /// WindsorController to the container.  Also associate the Controller 
    /// with the WindsorContainer ControllerFactory.
    /// </summary>
    protected virtual void InitializeServiceLocator()
    {
       // AddComponentsToIoC();
        var container = new WindsorContainer();

        ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));
        container.RegisterControllers(typeof(MainController));

        ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(container));

    }

MainController es muy simple, la acción Índice simplemente volver cadena "Hola mundo desde MVC2". (No hay vistas de esta acción).

Lo más interesante es que si yo comente esta línea:

ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));

MainController funciona bien, pero la causa de otros controladores más complicados no lo hacen obras diciendo que no hay constructor sin parámetros.

Así que las costuras que es algo malo en WindsorControllerFactory.

¿Alguna idea? Gracias

¿Fue útil?

Solución

Uso: protected override IController GetControllerInstance (System.Web.Routing.RequestContext RequestContext, Tipo controllerType)

Insted de: protected override IController GetControllerInstance (Tipo controllerType)

Otros consejos

Uso:
protected override IController GetControllerInstance (System.Web.Routing.RequestContext RequestContext, Tipo controllerType)

Insted de:
protected override IController GetControllerInstance (Tipo controllerType)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top