Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Alexander 33 posts 83 karma points
    Dec 19, 2019 @ 05:41
    Alexander
    0

    Composers Stopped Working after upgrading from 8.0 to 8.4

    Hi Everybody,

    I'm trying to upgrade my Umbraco from 8.0 to 8.4. Previously I had OwinStartup class where I was getting instance from the Current Factory.

    [assembly: OwinStartup(nameof(UmbracoStandardOwinStartup), typeof(UmbracoStandardOwinStartup))]
    public class UmbracoStandardOwinStartup : UmbracoDefaultOwinStartup {
        private IMinionManager _minionManager;
        public override void Configuration (IAppBuilder app) {
            base.Configuration (app);
            _minionManager = Umbraco.Web.Composing.Current.Factory.GetInstance<IMinionManager> ();
            _minionManager.RegisterMinions();
        }
    }
    

    To register dependencies I was using a composer with pretty vanilla code:

    public class RegisterDependenciesComposer : IUserComposer {
        public void Compose (Composition composition) {
            composition.Register<IMinionManager, MinionManager> ();
        }
    }
    

    I was working fine in 8.0, but 8.4 throwing an exception that it cannot resolve type IMinionManager.

    Which makes me think that in version 8.0 composers where executed during base configuration of the app, but in 8.4 it's not longer the same order.

    Do you have any idea how can I register dependencies before my custom code in owin startup file?

    I'd appreciate any help.

    Thanks, Alex.

  • Alexander 33 posts 83 karma points
    Dec 19, 2019 @ 05:52
    Alexander
    0

    So far, I've found out that inside UmbracoDefaultOwinStartup class there is a default Configuration method:

    public virtual void Configuration(IAppBuilder app) { app.SanitizeThreadCulture();

            // there's nothing we can do really
            if (RuntimeState.Level == RuntimeLevel.BootFailed)
                return;
    
            ConfigureServices(app, Services);
            ConfigureMiddleware(app);
        }
    

    Anddddd

    RuntimeState.Level == RuntimeLevel.BootFailed is true.

    Do you guys have any idea why and how can I fix it?

Please Sign in or register to post replies

Write your reply to:

Draft