首页 > 解决方案 > 缺少小数分隔符

问题描述

当我在生产服务器上发布并运行我的应用程序时,小数分隔符(用于十进制类型数字)正在消失(用于背景计算和显示)。例如:26,1205 -> 261205

它仅发生在远程 Windows Server 2019 Standard 上。这就是我所做的,但它仍然没有帮助:

我在方法中设置CultureInfo了应用程序:Startup.csConfigure

var defaultDateCulture = "ru-RU"; //no matter what culture is set here (en, ru, etc), it applied locally but not on production
var ci = new CultureInfo(defaultDateCulture);
app.UseRequestLocalization(new RequestLocalizationOptions
{
    DefaultRequestCulture = new RequestCulture(ci),
    SupportedCultures = new List<CultureInfo> { ci },
    SupportedUICultures = new List<CultureInfo> { ci }
});

我检查了 Windows 服务器上的区域设置: 在此处输入图像描述

标签: c#asp.net-core-mvcwindows-server-2019asp.net-core-3.1

解决方案


感谢用户先生。Matthew Watson 指导我正确。

应用程序为货币操作执行延迟的计划后台任务(使用BackgroundService类)。该线程的问题是实际的。CultureInfo所以我在执行操作之前明确设置。

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    ...
    Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
    ...
}

推荐阅读