在本地找不到CultureInfo,但在dotNetFiddle上找到

时间:2018-07-23 13:29:42

标签: c# .net reportviewer cultureinfo

我有以下代码来检测区域性名称是否表示有效区域性(我检查了该区域是否可以在给定区域性中呈现报告)。

try
{
    this.Culture = new CultureInfo(cultureName);
}
catch (CultureNotFoundException)
{
    // on exception default culture will be used
}

找到文化后,将其设置为“文化”,然后在报表呈现中使用。在大多数情况下,它可以正常工作,但是如果我提供“ en-NL”作为区域性名称,则代码会在localhost上引发异常(未找到区域性),这很好(报告使用不变的区域性呈现)。

但是,如果我在Azure上远程部署它,则会发现区域性,并且报告呈现会失败(因为它找不到这种区域性)。

我在dotnetfiddle上尝试了此代码。并且它还返回文化名称。但是LCID是4096。

我搜索了4096代表什么,并意识到它是LOCALE_CUSTOM_UNSPECIFIED-因此用户创建了某种文化。

问题是为什么它的行为有所不同。我也在本地和Azure上安装了.NET 4.5。

另一个问题是,如果LCID为4096,我是否可以采用某种方式进行处理,而宁愿使用不变区域性来避免风险文化实际上不存在。

注意: 我不认为它是this question的重复项。我认为它不区分大小写,它是关于不在本地识别特定的文化,并在另一台服务器上识别它。

0 个答案:

没有答案