2017-07-03 2 views
2

Ich habe eine Designkrise.OWIN Startup Klasse mehrmals aufgerufen

Ich habe einige Dinge, die während meiner Anwendungslebensdauer statisch bleiben müssen.

Eine public void Configuration(IAppBuilder app) Methode in der Startup.cs-Klasse wird mehr als einmal aufgerufen, außerdem scheinen sie mehrere Instanzen von "statischen" Variablen zu sein.

Ich habe diese auf meiner Startklasse

[assembly: OwinStartup(typeof(Startup))] 

Am auch diese parkages

<package id="Antlr" version="3.4.1.9004" targetFramework="net45" /> 
    <package id="EntityFramework" version="6.1.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.SignalR.Core" version="2.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" /> 
    <package id="Microsoft.Owin" version="3.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Cors" version="3.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Host.SystemWeb" version="3.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Cookies" version="3.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.OAuth" version="3.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /> 
    <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net45" /> 
    <package id="Owin" version="1.0" targetFramework="net45" /> 
    <package id="WebGrease" version="1.5.2" targetFramework="net45" /> 

Wie kann ich versichern, dass die Konfiguration in startup.cs nur einmal ausgeführt wird?

+0

ich glaube, Sie –

+0

ApplicationStart der Global.asax statt Owin der Konfiguration verwenden können, Was macht Sie vermuten, es wird mehr als einmal aufgerufen? Wenn Sie den OWIN-Dokumenten gefolgt sind (https://docs.microsoft.com/en-us/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-tos-self-host-web-api), hätten Sie einen ähnlichen Code - 'WebApp.Start (url: baseAddress);', den Sie es einmal aufrufen würden. – Subbu

+1

Überprüfen Sie, ob Sie Ihre App in einem Webgarten betreiben. Möglicherweise wird dies mehrere Male aufgerufen, durch mehrere Worker-Prozesse – zaitsman

Antwort

2

Das ist mir passiert mit Startup genau doppelt ausgeführt. Das Problem war

<add name="Owin" verb="" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb"/> 

ich diese Zeile aus Config entfernt und fixiert es

enter image description here

Verwandte Themen