Tec*_*ile 7 asp.net globalization
我想知道从哪里System.Globalization.CultureInfo.CurrentCulture读取其值的设置或位置 .
我正在使用Windows 7笔记本电脑,并已将我的系统的区域和日期时间设置更改为美国.
我在下面的web.config设置下使用了我的代码
<globalization culture="en-US" />
Run Code Online (Sandbox Code Playgroud)
谢谢
在MSDN说
文化是执行线程的属性.此只读属性等效于检索Thread.CurrentCulture属性返回的CultureInfo对象.启动线程时,最初通过调用Windows GetUserDefaultLocaleName函数来确定其文化.
换句话说,它基于Thread,在ASP.NET上下文中有一个上下文...来自客户端浏览器中使用的Locale,如果使用或其他所有内容的系统设置.Server Variables
在这个Web上下文中,您可以使用该Server.Variables方法获取它HTTP_ACCEPT_LANGUAGE,您将获得以下内容:
en-US,en;q=0.8,pt-PT;q=0.6,pt;q=0.4
Run Code Online (Sandbox Code Playgroud)
Witch声称客户端浏览器设置了3种语言,其中第一种是en-US.
所有内容System.Globalization都来自系统定义,如下图所示:

上面的代码是:
<p>
<pre>System.Globalization.CultureInfo.CurrentCulture</pre>
is @System.Globalization.CultureInfo.CurrentCulture.EnglishName
</p>
Run Code Online (Sandbox Code Playgroud)
无论使用什么浏览器,定义System.Globalization都将始终来自操作系统定义

小智 5
花了8个小时后-寻找解决方案感谢Ronald-同一文化的应用程序之间的CultureInfo值有所不同。这是错误吗?
事实证明,区域设置是在Windows中按用户存储的。这是我应该知道的。更新应用程序池以自己运行的结果在两个应用程序中产生了相同的结果。
公平地说,仍然令人困惑的是网络服务(运行应用程序池的帐户)是如何具有不正确的值的。我什至不知道该如何纠正。
编辑:
如果您需要更新保留帐户的区域设置。您有两个选择。
Run Code Online (Sandbox Code Playgroud)Control Panel > Regional Settings > Click the administrative tab and then select "Copy Settings".在启动的屏幕上,确保选中“欢迎屏幕和系统帐户”。我认为Windows的旧版本与此类似。为支撑。注册表:HKEY_USERS> SID ...>控制面板>国际。网络服务的安全标识符是:SID:S-1-5-20。
确保重新启动应用程序池以使设置生效。
我做到了第一点-这对我来说是一个把戏!