文化 ID 31770 (0x7C1A) 是中立文化;无法从中创建区域。参数名称:文化

Culture ID 31770 (0x7C1A) is a neutral culture; a region cannot be created from it. Parameter name: culture

我正在使用 .net Framework 2.0。 我已将网站从 Windows server 2008 R2 Standard 移至 Windows server 2019 Standard 然后在我的函数中抛出以下错误。

下面是我的功能代码

   protected string GetCultureFlagMapJS()
   {
        Dictionary<string, string> cultureCountryFlagMap = new Dictionary<string, string>();
        List<CountryFlags> flags = Flags();
        List<CultureInfo> codes = Codes();
        foreach (CultureInfo cultInfo in codes)
        {
            RegionInfo regInfo = new RegionInfo(cultInfo.LCID);
            CountryFlags flagMatch = flags.FirstOrDefault(f => f.Text == regInfo.EnglishName);
            if (flagMatch != null)
            {
                cultureCountryFlagMap.Add(cultInfo.Name, flagMatch.Value);
            }
        }
        var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        string jsCultureCountryFlagMap = serializer.Serialize(cultureCountryFlagMap);
        return "var jsCultureCountryFlagMap = " + jsCultureCountryFlagMap + ";";
    }

我找到了解决方案,当我更改我自己的方法代码并且它工作正常时。

我在这里更改了方法代码:

protected string GetCultureFlagMapJS()
{
    Dictionary<string, string> cultureCountryFlagMap = new Dictionary<string, string>();
    List<CountryFlags> flags = Flags();
    List<CultureInfo> codes = Codes();
    foreach (CultureInfo cultInfo in codes)
    {
        var ci = cultInfo;  // local copy, use ci from now on
        if (!ci.IsNeutralCulture)
        {                
            RegionInfo regInfo = new RegionInfo(ci.LCID);
            CountryFlags flagMatch = flags.FirstOrDefault(f => f.Text == regInfo.EnglishName);
            if (flagMatch != null)
            {
                cultureCountryFlagMap.Add(cultInfo.Name, flagMatch.Value);
            }
        }
    }
}