gpt4 book ai didi

asp.net - CurrentCulture 在 ASP.net 中错误地默认为 en-US

转载 作者:行者123 更新时间:2023-12-03 10:25:23 25 4
gpt4 key购买 nike

我刚刚将大约 100 个 ASP.net 站点从 Windows Sever 2003 上的 IIS 6 迁移到 Windows 2008 上的 IIS 7。被识别为有效的日期时间”。我已经将此归结为以下事实:站点的 CurrentCulture 默认为“en-US”,因此我的英国用户以意外的格式输入日期。

问题是,他们从哪里得到 en-US?从顶部开始,如果我查看“控制面板 > 区域和语言”,所有内容都设置为英语(英国)。网站的 web.configs 要么没有 部分,要么将其设置为 。在“IIS7 - .Net 全局化”中,所有站点的文化都设置为“不变语言(不变国家/地区)”。

我找不到任何将文化设置为“en-US”的地方……但确实如此。

Thread.CurrentThread.CurrentCulture.Name is outputting 'en-US'
Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencySymbol is outputting '$'

我可以通过将 添加到每个 web.config 来解决这个问题,但我真的不想手动编辑大约 100 个 web.configs!我不想从设置为 en-GB 的服务器操作系统设置中继承文化。

我错过了什么吗?

最佳答案

这些是您可以搜索的替代位置:

I can't find anywhere that's settings the culture to 'en-US'... but something is.

Thread.CurrentThread.CurrentCulture.Name is outputting 'en-US'Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencySymbol is outputting '$'


尝试寻找 InitializeCulture方法,此方法在 ASP.Net 页面中被覆盖以设置文化,如:
protected override void InitializeCulture()
{
var hidden = this.Request.Form["hidden"];
var culture = this.Request.Form[hidden];
if (!string.IsNullOrWhiteSpace(culture))
{
this.Culture = culture;
this.UICulture = culture;
}

base.InitializeCulture();
}
尝试查找以下程序集属性:
    [assembly: AssemblyCulture("en-US")]
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.MainAssembly)]
尝试查找以下页面指令属性:
    <%@ Page Culture="en-US" UICulture="en-US" Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
尝试查看 web.configs:
<globalization uiCulture="en-US" culture="en-US" enableClientBasedCulture="false" />
编辑 1
尝试寻找尝试设置语言的 HttpHandlers 或 HttpModules
尝试查看 web.config 层次结构(在服务器上, <wwwroot> 表示您的 IIS 网站的根文件夹)
  • 全局机。 <windir>\Microsoft.NET\Framework\<ver>\Config\Machine.config
  • 根 Web 配置。 <windir>\Microsoft.NET\Framework\<ver>\Config\Web.config
  • 网站。 <wwwroot>\Web.config
  • Web应用程序。 <wwwroot>\<webapp>\Web.config
  • 文件夹。 <wwwroot>\<webapp>\<dir>\Web.config

  • 如果您有多个服务器(网络场),请检查您是否被重定向到正确的服务器(您正在检查配置的服务器),为了做到这一点,您可以使用所需服务器的 ip 或在您的客户端计算机

    关于asp.net - CurrentCulture 在 ASP.net 中错误地默认为 en-US,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135002/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com