c# - Azure Web 应用程序突然不再支持文化

标签 c# asp.net asp.net-mvc azure azure-web-app-service

我们的 Azure Web 应用程序突然抛出有关不受支持的文化的错误。我们加载了一个国家/地区列表以显示在首页上,但这突然出现错误。相同的代码也用于其他各种网络应用程序,但它们没有出现问题。

以下代码出现问题。

 private List<SelectListItem> Countries()
        {
            RegionInfo country = new RegionInfo(new CultureInfo("nl-BE", false).LCID);
            List<SelectListItem> countryNames = new List<SelectListItem>();
        foreach (CultureInfo cul in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
        {
            country = new RegionInfo(new CultureInfo(cul.Name, false).LCID);
            countryNames.Add(new SelectListItem() { Text = country.DisplayName, Value = country.DisplayName });
        }

        return countryNames.GroupBy(x => x.Text).Select(x => x.FirstOrDefault()).ToList<SelectListItem>().OrderBy(x => x.Text).ToList();
    }

我在 for-each 中放置了一个 try-catch,这样我就可以查明出现错误的区域性。以下区域性突然返回错误:

<errors>
<LCID>4096</LCID>
<Name>ar-001</Name>
</errors>
<errors>
<LCID>4096</LCID>
<Name>el-CY</Name>
</errors>
<errors>
<LCID>4096</LCID>
<Name>en-BB</Name>
</errors>
<errors>
<LCID>4096</LCID>
<Name>en-BS</Name>
</errors>
<errors>
<LCID>4096</LCID>
<Name>en-HK</Name>
</errors>
<errors>
<LCID>4096</LCID>
<Name>en-NL</Name>
</errors>
<errors>
<LCID>4096</LCID>
<Name>en-SE</Name>
</errors>
<errors>
<LCID>4096</LCID>
<Name>es-419</Name>
</errors>

有人可以帮我解决这个问题吗?我似乎无法理解为什么这个网络应用程序突然出现这些错误。

最佳答案

Windows 中的几乎所有新区域设置都没有分配显式 LCID - 因为没有足够的“空间”来解决数百个国家/地区的数千种语言问题。它们都被分配为 0x1000。

在这种情况下,我认为更改 LCID 名称可能适合您:

country = new RegionInfo(new CultureInfo(cul.Name, false).LCID);

仅使用区域性名称:

country = new RegionInfo(cul.Name);

当然,LCID 的任何其他用途也需要识别区域性名称。

我们实际上建议使用完整的区域性名称构建 RegionInfo,因为这比仅使用区域名称更明确。 RegionInfo 具有一些“依赖于”语言的属性,例如 DisplayName。例如,es-US 和 en-US 提供“United States”的西类牙语或英语字符串。

希望有帮助,

-肖恩

关于c# - Azure Web 应用程序突然不再支持文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41851613/

相关文章:

c# - 困难的层次排序

c# - 找不到 Visual Studio 2015 上的 ASP.NET 5 addMvc 方法

c# - 图像服务器路径 ASP.NET 包括 Controller 和方法

asp.net-mvc - 尝试使用 ASP.NET MVC 上传文件

c# - Visual Studio 更新不应构建的项目二进制文件

c# - 连接数据源之间的选择 C#

ASP.NET 编译器提示 MiniProfiler 的框架版本不匹配

c# - 是否可以在 ASP.NET MVC 中将命名空间分组到一个文件中?

asp.net-mvc - ASP.NET MVC 2 - 一个属性上的多个正则表达式

c# - 如何创建一个连接字符串管理器来检测服务器是否可用,如果不可用则返回缓存连接字符串