【发布时间】:2012-03-14 07:31:26
【问题描述】:
我想知道System.Globalization.CultureInfo.CurrentCulture 读取其值的设置或位置。
我使用的是 Windows 7 笔记本电脑,并且已将系统的区域和日期时间设置更改为美国。
我的代码使用以下设置在 web.config 下运行
<globalization culture="en-US" />
谢谢
【问题讨论】:
标签: asp.net globalization
我想知道System.Globalization.CultureInfo.CurrentCulture 读取其值的设置或位置。
我使用的是 Windows 7 笔记本电脑,并且已将系统的区域和日期时间设置更改为美国。
我的代码使用以下设置在 web.config 下运行
<globalization culture="en-US" />
谢谢
【问题讨论】:
标签: asp.net globalization
MSDN 说
文化是执行线程的属性。此只读属性等效于检索 Thread.CurrentCulture 属性返回的 CultureInfo 对象。当一个线程启动时,它的区域性最初是通过调用 Windows GetUserDefaultLocaleName 函数来确定的。
换句话说,它是基于线程的,女巫有一个上下文...在 ASP.NET 上下文中,它来自 客户端浏览器中首先使用的 Locale strong> 如果使用Server Variables 或其他所有内容的系统设置。
在此 Web 上下文中,您可以使用 HTTP_ACCEPT_LANGUAGE 上的 Server.Variables 方法获取它,您将获得类似以下内容:
en-US,en;q=0.8,pt-PT;q=0.6,pt;q=0.4
Witch 表示客户端浏览器设置了 3 种语言,其中第一种是 en-US。
System.Globalization 中的所有内容都来自系统定义,如下图所示:
上面的代码是:
<p>
<pre>System.Globalization.CultureInfo.CurrentCulture</pre>
is @System.Globalization.CultureInfo.CurrentCulture.EnglishName
</p>
无论使用什么浏览器,System.Globalization 的定义始终来自操作系统定义
【讨论】:
花了 8 小时后 -- 找到解决方案 感谢 Ronald -- CultureInfo values differ between applications for the same culture. Is this a bug?
事实证明,区域设置是按用户存储在 Windows 中的。 这是我应该意识到的。更新 以我自己的身份运行的应用程序池在两者中产生了相同的结果 应用程序。
公平地说,仍然令人困惑的是网络服务( 应用程序池正在运行的帐户)来拥有 不正确的值。我什至不确定我会如何纠正它。
编辑:
如果您需要更新保留帐户的区域设置。你 有两种选择。
Control Panel > Regional Settings > Click the administrative tab and then select "Copy Settings".在启动的屏幕上,确保 您检查“欢迎屏幕和系统帐户”。旧版本的 我相信Windows是相似的。 对于支架。注册表:HKEY_USERS > SID... > 控制面板 > 国际。网络服务的安全标识符是: SID: S-1-5-20。
确保您重新启动应用程序池以使设置生效。
我做到了 #1 ——它对我有用!
【讨论】:
它使用windowsGetUserDefaultLocaleName函数。
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture.aspx
【讨论】:
对于 ASP.NET,来自
HKEY_USERS\S-1-5-20\Control Panel\International\
S-1-5-20 是网络服务“用户”的安全标识符 (http://support.microsoft.com/kb/243330)
其他类型的应用请参考GetUserDefaultLocaleName函数文档(https://msdn.microsoft.com/en-us/library/windows/desktop/dd318136%28v=vs.85%29.aspx)
有关更改 S-1-5-20 区域设置的简单 GUI 方法,请参阅 sitecorebasics 的答案
【讨论】: