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