none
Owin Middleware behalt in .net 4.6.* nicht mehr die Culture bei RRS feed

  • Frage

  • Wir haben schon lange eine middleware die aufgurnd er URL die Culture setzt.

    So dass z.b. wenn jemand 

    es.myDomain.tld aufruft er die spanische seite bekommt und auf 

    de.myDomain.tld die deutsche

    Nun müssen wir aus diversen Gründen auf .net 4.6.1 upgraden. Dort funktioniert das aber nicht mehr.
    Ich kann das Problme auf folgende Middleware in einer neuen Solution reduzieren .


     public class CultureMiddleware : OwinMiddleware
        {
            public CultureMiddleware(OwinMiddleware next)
                : base(next)
            {
            }
    
            public override async Task Invoke(IOwinContext context)
            {
                var culture = new CultureInfo("es-ES");
                Thread.CurrentThread.CurrentCulture = culture;
                Thread.CurrentThread.CurrentUICulture = culture;
    
                CultureInfo.CurrentCulture = culture;
                CultureInfo.CurrentUICulture = culture;
    
                
                await Next.Invoke(context);
            }
        }

    Rufe ich nun einen Url auf ist in .net 4.5 die kultur spanisch mit 4.6 die default culture unabhänig was die middleware macht.

    public ActionResult Index() { var foo1 = CultureInfo.CurrentCulture; //kein es

    var foo2 = Thread.CurrentThread.CurrentCulture; //kein es return View(); }


    Ich habe auch einen Supportcase auf aber da tut sich so gut wie gar nichts und es wirkt als schaut sich der supporter nichtmal das beispiel an das er extra wollte...

    https://connect.microsoft.com/VisualStudio/feedback/details/2455357

    Hat jemand noch einen tipp?


    PS: habe auch bei stackoverflow gepostet
    • Bearbeitet Gentlehag Mittwoch, 6. April 2016 16:24
    Mittwoch, 6. April 2016 16:20