You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为.NET Web应用在Windows上注册自定义文化失败问题排查

问题:Windows Server 2012R2注册自定义文化ar-ZZ失败,提示无效标识符

我们需面向沙特阿拉伯用户部署.NET Web应用,初始配置ar-SA文化后,发现基础日历与符号不符合需求,遂尝试创建自定义文化(如ar-SAR、ar-ZZ)。同一注册脚本在Windows Server 2019上执行成功,但在Windows Server 2012R2上失败,报错提示“ar-ZZ是无效的文化标识符”。

注册脚本

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using System.Threading.Tasks;

namespace CultureRegistration
{
    class CultureLdml
    {
        static void Main(string[] args)
        {
            CultureAndRegionInfoBuilder carib = CultureAndRegionInfoBuilder.CreateFromLdml("ar-ZZ.ldml");
            carib.Register();
        }
    }
}

编译命令

csc /r:sysglobl.dll culture.cs

执行报错信息

Unhandled Exception: System.Xml.Schema.XmlSchemaValidationException: Culture is
not supported.
Parameter name: name
ar-ZZ is an invalid culture identifier. ---> System.Globalization.CultureNotFoun
dException: Culture is not supported.
Parameter name: name
ar-ZZ is an invalid culture identifier.
   at System.Globalization.CultureInfo.GetCultureInfo(String name)
   at System.Globalization.CultureXmlReader.ReadIdentityElement()
   at System.Globalization.CultureXmlReader.Parse()
   at System.Globalization.CultureXmlReader..ctor(String fileName)
   --- End of inner exception stack trace ---
   at System.Globalization.CultureXmlReader..ctor(String fileName)
   at System.Globalization.CultureAndRegionInfoBuilder.CreateFromLdml(String xmlFileName)
   at CultureRegistration.CultureLdml.Main(String[] args)

问题原因排查

  1. .NET Framework版本对标识符的校验差异
    Windows Server 2012R2默认搭载的.NET Framework版本(最高支持到4.8)中,CultureAndRegionInfoBuilder对自定义文化标识符的校验规则更严格。ZZ是ISO标准中保留的“未知区域”代码,旧版本.NET Framework不允许将其用于创建自定义文化;而Windows Server 2019对应的.NET Framework版本放宽了这类限制,允许使用ZZ作为区域部分。

  2. LDML文件解析时的文化校验触发
    从错误栈可以看到,异常是在CultureInfo.GetCultureInfo方法中抛出的——旧版本.NET Framework解析LDML文件的<identity>节点时,会严格验证文化名称的合法性,当文件中指定ar-ZZ作为文化标识时,系统会直接判定该标识符无效,无法完成后续解析。

  3. 系统级文化支持的版本差异
    Windows Server 2012R2的系统文化数据库对自定义文化的支持不如2019完善,对于ZZ这类特殊区域代码的自定义文化,系统层面不认可其有效性,而2019版本的系统文化数据库已经支持这类自定义场景。

内容的提问来源于stack exchange,提问作者Ian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:34:58