为什么我的Sitecore.Context.Language在Controller中重置?

Sitecore似乎在它的Context对象中使用语言变量做了一些奇怪的事情。 如果我使用url ?sc_Lang=ru-RU (获取我的网站的俄语版本)加载CMS页面,当它到达我的MVC控制器时,它将重置为语言返回到en

 public PartialViewResult Navigation() { //en var language = Sitecore.Context.Language; } 

我知道sitecore确实设置了这个,因为如果我添加一个HTTP管道,我可以看到Sitecore.Context.Languageru-RU

 public class LanguageResolver { public void Process(Sitecore.Pipelines.HttpRequest.HttpRequestArgs args) { //ru-RU var language = Sitecore.Context.Language; } } 

注册:

   

正如sitecore博客文章中所推荐的那样

我做了一些挖掘sitecore dll,我注意到Sitcore.Context.Language基本上是HttpContext.Current.Items["sc_Language"]的包装器。 当我检查这个时,我看到相同的结果(即在管道中它是控制器中的ru-RU它是en

所以某处某事正在将这个HttpContext Item转为"en"

作为实验,我将一个新变量放入Items集合中。 然后我可以在Controller中再次看到它(在它的正确状态),因此Items集合正确地传递给控制器​​。

我最初没有开发这个网站,但我在代码库中看不到任何改变这个语言变量的地方。

还有其他人经历过这个吗? 我错过了什么? 我需要配置什么,检查?

sitecore文档(像往常一样)在这个问题上非常糟糕。


要跟进@jammykam的评论:

我可以看到lang cookie响应Set-Cookie: redrow#lang=ru-RU; path=/ Set-Cookie: redrow#lang=ru-RU; path=/并设置语言:

在此处输入图像描述

在此处输入图像描述