2010-01-05 6 views
4

J'ai migré un projet MVC1 vers MVC2 RC et le site ne fonctionne plus du tout. J'ai l'erreur "Point d'entrée n'a pas été trouvé."Migration de .NET MVC 1 vers MVC 2 RC

Je migrées le projet suivant this link

J'utilise le château de Windsor comme DI.

Voici une partie 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 est très simple, l'action Index juste retour "Bonjour tout le monde de MVC2" string. (Aucune vue pour cette action).

Les choses intéressantes est si je commente cette ligne:

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

MainController fonctionne très bien, mais la cause d'autres contrôleurs plus compliquées ne pas les œuvres disant qu'il n'y a pas de constructeur parameterless.

Donc, il semble que quelque chose ne va pas avec WindsorControllerFactory.

Des idées? Merci

+0

résolu le problème en mettant à jour les bibliothèques MvcContrib et Castle.Windsor – isuruceanu

Répondre

3

Utilisation: override protected IController GetControllerInstance (System.Web.Routing.RequestContext requestContext, Type controllerType)

Insted de: protected override iController GetControllerInstance (Type controllerType)

+0

Heh, les mêmes fautes de frappe que dans la réponse de user257138 –

4

Utilisation:
protected override iController GetControllerInstance (System.Web.Routing.RequestContext RequestContext, type controllerType)

Insted de:
protected override iController GetControllerInstance (type controllerType)

Questions connexes