C# Owin CultureInfo&;AspNetSynchronizationContext
net应用程序,它同时使用Mvc(5.2.3)和WebApi(2.2)。现在,我的应用程序是由owin启动类(Global.asax已被删除)构建和初始化的,安装了包Microsoft.owin.Host.SystemWeb 以前,在Global.asax时代,我通过按cookie或AcceptLanguage标头获取区域性并设置Thread.CurrentThread.CurrentCulture=new CultureInfo(langSelectedValue)来设置当前请求区域性,即使对于CurrentUiCulture也是如此 现在,由于my Global.asax已去世,将安装程序保留在Startup.cs中,因此模拟先前区域性设置的代码位于C# Owin CultureInfo&;AspNetSynchronizationContext,c#,asp.net-mvc,asp.net-web-api,async-await,owin,C#,Asp.net Mvc,Asp.net Web Api,Async Await,Owin,net应用程序,它同时使用Mvc(5.2.3)和WebApi(2.2)。现在,我的应用程序是由owin启动类(Global.asax已被删除)构建和初始化的,安装了包Microsoft.owin.Host.SystemWeb 以前,在Global.asax时代,我通过按cookie或AcceptLanguage标头获取区域性并设置Thread.CurrentThread.CurrentCulture=new CultureInfo(langSelectedValue)来设置当前请求区域性,即使对
app.Use(async (env, next) => {
var langCookie = env.Request.Cookies["cultureName"];
if (langCookie != null && GlobalizationHelper.IsValidCultureCode(langCookie))
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(langCookie);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(langCookie);
}
await next();
})
问题很明显,所有异步请求都会在线程区域性中丢失。我尝试了许多解决方案:
提前感谢我相信您需要为此升级到.NET 4.6。我已经完成了,我的解决方案现在完全在.NET 4.6上,但问题仍然在于您的?当然!这是我检查的第一件事…你能解决它吗?在我的例子中,它在4.5.1中起作用,但自从升级到4.6之后,它就不再起作用了。。。。