你目前正处于脱机状态,正在等待 Internet 重新连接

在安装了某一 .NET Framework 2.0 软件更新的订算机上运行应用程序或尝试访问网站时出现错误消息:“Culture name 'Culture' is not supported”

症状
在安装了 Microsoft Windows Server 2003 的计算机上,安装下面 Microsoft 知识库文章中介绍的 Microsoft .NET Framework 2.0 软件更新:
928365 2007 年 7 月 10 日版用于 Windows Server 2003、Windows XP 和 Windows 2000 的 .NET Framework 2.0 安全更新说明
当您在该计算机上运行应用程序或尝试访问网站时,可能会收到以下错误消息:
[System.ArgumentException]:Culture name 'Culture' is not supported for the following 13 cultures:en-CB az-AZ-Latn uz-UZ-Latn sr-SP-Latn az-AZ-Cyrl uz-UZ-Cyrl sr-SP-Cyrl bs-BA-Cyrl sr-BA-Latn sr-BA-Cyrl bs-BA-Latn iu-CA-Latn div-MV
此外,如果某个应用程序具有使用旧的区域性名称格式的资源,而用户的区域性名称使用新的区域性名称格式,则该应用程序无法找到旧的区域性名称格式的资源。
原因
“症状”部分提到的软件更新是 .NET Framework 2.0. 的累积更新。此更新包括对区域性名称的更改。新的区域性名称遵循 IETF 标准(RFC 4646 和 RFC 4647)的语法。对区域性名称的更改确保了各个区域设置具有一致的标识符,从而提高了互操作性。

以下是旧区域性名称到新区域性名称的映射:
旧区域性名称 新区域性名称
az-AZ-Latn az-Latn-AZ
uz-UZ-Latn uz-Latn-UZ
sr-SP-Latn sr-Latn-CS
az-AZ-Cyrl az-Cyrl-AZ
uz-UZ-Cyrl uz-Cyrl-UZ
sr-SP-Cyrl sr-Cyrl-CS
bs-BA-Cyrl bs-Cyrl-BA
sr-BA-Latn sr-Latn-BA
sr-BA-Cyrl sr-Cyrl-BA
bs-BA-Latn bs-Latn-BA
iu-CA-Latn iu-Latn-CA
div-MV dv-MV
en-CB en-029
替代方法
要变通解决此问题,请根据使用旧区域性名称的新区域设置创建自定义区域性。为此,请按照下列步骤操作。

注意:您必须安装 .NET Framework 2.0 才能使用此处提供的示例程序。
  1. 创建可用于创建自定义区域性的应用程序。为此,请按照下列步骤操作:
    1. 单击“开始”,单击“运行”,键入 notepad,然后单击“确定”。
    2. 将下面的代码粘贴到记事本中。
      using System;using System.Globalization;public class MakeCultures{    static void Main()    {        CreateCopyCulture("en-029", "en-CB");        CreateCopyCulture("az-Latn-AZ", "az-AZ-Latn");        CreateCopyCulture("uz-Latn-UZ", "uz-UZ-Latn");        CreateCopyCulture("sr-Latn-CS", "sr-SP-Latn");        CreateCopyCulture("az-Cyrl-AZ", "az-AZ-Cyrl");        CreateCopyCulture("uz-Cyrl-UZ", "uz-UZ-Cyrl");        CreateCopyCulture("sr-Cyrl-CS", "sr-SP-Cyrl");        CreateCopyCulture("bs-Cyrl-BA", "bs-BA-Cyrl");        CreateCopyCulture("sr-Latn-BA", "sr-BA-Latn");        CreateCopyCulture("sr-Cyrl-BA", "sr-BA-Cyrl");        CreateCopyCulture("bs-Latn-BA", "bs-BA-Latn");        CreateCopyCulture("iu-Latn-CA", "iu-CA-Latn");        CreateCopyCulture("dv-MV", "div-MV");             }    static void CreateCopyCulture(string strRealName, string strAliasName)    {        try        {            // Create a new culture based on the old name            CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder(                strAliasName, CultureAndRegionModifiers.None);            carib.LoadDataFromCultureInfo(new CultureInfo(strRealName));            carib.LoadDataFromRegionInfo(new RegionInfo(strRealName));            carib.Register();            // Change the existing culture's parent to the old culture            carib = new CultureAndRegionInfoBuilder(strRealName,                             CultureAndRegionModifiers.Replacement);            carib.Parent = new CultureInfo(strAliasName);            carib.Register();            // Verify they're registered...            CultureInfo ci = new CultureInfo(strAliasName);            Console.WriteLine("Aliased culture {0} has parent of {1}.", ci, ci.Parent);            ci = new CultureInfo(strRealName);            Console.WriteLine("\"Real\" culture {0} has parent of {1}.", ci, ci.Parent);        }        catch (Exception e)        {            Console.WriteLine("Unable to create custom culture " + strAliasName);            Console.WriteLine(e);        }    }}
      注意:此示例程序将新区域性的父级设置为旧区域性。同时,旧区域性的父级不能作为新区域性,因为这可能会导致在资源查找过程中发生无限递归。
    3. 在“文件”菜单上,单击“另存为”。
    4. 在“另存为”对话框中单击“我的文档”,在“文件名”框中键入 MakeCultures.cs,单击“保存类型”框中的“所有文件”,然后单击“保存”。
    5. 退出记事本。
  2. 运行在步骤 1 创建的应用程序以创建自定义区域性。为此,请按照下列步骤操作:
    1. 依次单击“开始”和“运行”,键入 cmd,然后单击“确定”。
    2. 键入“cd "My Documents"”,然后按 Enter
    3. 键入 %windir%\Microsoft.NET\Framework\v2.0.50727\csc /r:sysglobl.dll MakeCultures.cs,然后按 Enter。
    4. 键入 MakeCultures.exe 以运行程序创建区域性。
状态
Microsoft 已经确认这是在“这篇文章中的信息适用于:”部分中列出的 Microsoft 产品中存在的问题。
patch 6847 update 928365 en-CB az-AZ-Latn uz-UZ-Latn sr-SP-Latn az-AZ-Cyrl uz-UZ-Cyrl sr-SP-Cyrl bs-BA-Cyrl sr-BA-Latn sr-BA-Cyrl bs-BA-Latn iu-CA-Latn div-MV MSRC
属性

文章 ID:939949 - 上次审阅时间:12/03/2007 19:00:00 - 修订版本: 1.1

  • Microsoft .NET Framework 2.0
  • kbbug kbfix kbsecvulnerability kbqfe kbsecurity kbsecbulletin kbpubtypekc kbexpertiseadvanced KB939949
反馈