S'il vous plaît aidez-moi à résoudre un problème. J'utilise NancyFx et pour l'optimisation du code j'ai décidé d'utiliser uniquement OWIN SelfHost sans utiliser NancyFx SelfHost. Je créer des fenêtres service où je place le code (fonction OnStart)NancyFx + SignalR hôte indépendant et service Windows
_s7Comm = _container.Resolve<IS7Comm>(); // s7 controller class connection _context = Rhs60Hub.HubContext; // hub context // events for send info to hub from s7 _s7Comm.OnErrorEvent += S7CommOnErrorEvent; ...... var startup = _container.Resolve<Startup>(); // use Unity IoC Service = WebApp.Start("http://+:8081/", startup.Configuration);
service de démarrage avec une aide de service Windows Helper - everythin travaille. Ne vous arrêtez de service, le code (fonction OnStop)
_s7Comm.OnErrorEvent - = S7CommOnErrorEvent; .....
_s7Comm.Dispose(); // libérer toutes les tâches dans l'objet
Service.Dispose(); // arrête nancy
recommencer - branche avec l'initialisation NancyFX ne démarre pas mais donne l'exception NullReferenceException. ma classe de début pour Owin
app.UseCors (CorsOptions.AllowAll); App.MapSignalR ("/ signalr", nouveau HubConfiguration() {EnableDetailedErrors = true, EnableJSONP = true, EnableJavaScriptProxies = true}); app.UseNancy (options => options.Bootstrapper = nouveau Bootstrapper (UnityHelper.GetConfiguredContainer())); < - erreur ici
Pour le test je déterminer début de NancyFX avec l'aide du paquet NancyFx SelfHost - tout est bon, commencer? Arrêtez et restar.
(fonction OnStart)
_s7Comm = _container.Resolve(); // connexion à la classe de contrôleur s7 _context = Rhs60Hub.HubContext; // contexte de concentrateur
// événements pour envoyer des informations au concentrateur à partir de s7 _s7Comm.OnErrorEvent + = S7CommOnErrorEvent; ......
_host = new NancyHost (nouveau Uri ("http://localhost:8082"), nouveau Bootstrapper (_container));
_host.Start();
var démarrage = _container.Resolve(); // utiliser Unity IoC
Service = WebApp.Start ("http://+:8081/", startup.Configuration);
et de supprimer la chaîne de la classe Démarrer avec des définitions pour nancyFx
Où peut-être un problème avec l'hôte d'utilisation dans OWIN? Le code debuf indique que le conteneur est initialisé et que toutes les dépendances sont présentes. Comment je peux découvrir avec dépendance n'est pas présent?Montrez que vous suivi de pile
> в Microsoft.Practices.Unity.UnityDefaultBehaviorExtension.SetLifetimeManager ( type lifetimeType, String name, LifetimeManager lifetimeManager) \ r \ n
в Microsoft.Practices.Unity.UnityDefaultBehaviorExtension.OnRegisterInstance (Object sender, RegisterInstanceEventArgs e) \ r \ n
в System.EventHandler1.Invoke(Object sender, TEventArgs e)\r\n
1.Initialise() \ r \ n
в Microsoft.Practices.Unity.UnityContainer.RegisterInstance (Type t, String name, Object instance, LifetimeManager lifetime)\r\n
в Microsoft.Practices.Unity.UnityContainerExtensions.RegisterInstance[TInterface](IUnityContainer container, TInterface instance, LifetimeManager lifetimeManager)\r\n
в Nancy.Bootstrappers.Unity.UnityNancyBootstrapper.RegisterBootstrapperTypes(IUnityContainer applicationContainer)\r\n
в Nancy.Bootstrapper.NancyBootstrapperBase
в Nancy.Owin.NancyMiddleware.UseNancy (options NancyOptions) \ r \ n
в Owin. AppBuilderExtensions.UseNan cy (constructeur de IAppBuilder options NancyOptions) \ r \ n
в Owin.AppBuilderExtensions.UseNancy (constructeur IAppBuilder, configuration Action`1) \ r \ n
в RHS60SystemService.Startup.Configuration (app IAppBuilder) в c: \ ...... \ Startup.cs: строка 16" string
chaîne 16 est
app.UseNancy (options => options.Bootstrapper = new Bootstrapper (UnityHelper.GetConfiguredContainer()))