WebApi 使用的是 Web 服务器文化

WebApi is using Web Server culture

我们的服务器 运行 在丹麦使用 Da-DK 文化。我们没有在 ASP.NET WebApi 解决方案中指定任何文化。

当使用小数参数在 Api 上调用端点时,api 会自动将其转换为欧洲十进制表示法(例如 100,01),最终导致解析错误十进制被传递给另一台服务器上的另一个 API。

我们如何才能强制我们的 Api 使用美国文化而不是 Web 服务器的文化?

您需要为您的应用设置默认本地化。 特别是,您需要 UseRequestLocalization。您有 DefaultRequestCulture 需要设置为您的文化。

看看参考资料: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization#provide-localized-resources-for-the-languages-and-cultures-you-support

[更新] 我刚刚意识到您不是在要求 asp.net 核心。 对于网络 api,您可以在 Thread.Current

上设置文化

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");