Domanda

Ho migrato un progetto MVC1 a MVC2 RC, e ora il sito non funziona affatto. Ottengo l'errore "Punto di ingresso non è stato trovato."

Ho migrato il progetto seguente questo link

sto usando il Castello di Windsor come DI.

Ecco una parte del 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 è molto semplice, l'azione Indice basta tornare "Ciao mondo da MVC2" stringa. (Senza vista per questa azione).

Le cose interessanti è se io commento questa riga:

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

MainController funziona bene, ma di causa altri controller più complicati non lo fanno opere dicendo che non v'è alcun costruttore senza parametri.

Quindi cuciture che qualcosa non va con WindsorControllerFactory.

Tutte le idee? Grazie

È stato utile?

Soluzione

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

invece di: protected override IController GetControllerInstance (tipo controllerType)

Altri suggerimenti

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

invece di:
protected override IController GetControllerInstance (tipo controllerType)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top