【问题标题】:ASP.NET MVC app is returning dates in incorrect formatASP.NET MVC 应用程序以不正确的格式返回日期
【发布时间】:2019-01-03 17:29:39
【问题描述】:

我们有一个 ASP.NET MVC 应用程序的多个实例,其中一个 WCF 服务层部署到许多运行良好的服务器上。该应用程序部署到 Web 服务器 (IIS)、应用程序服务器(作为 Windows 服务托管的 WCF 服务)和数据库服务器 (SQL Server 2012)。

但是,我们最近配置了一组新的服务器来托管该应用的另一个实例,并且由于某些原因,日期以美国格式而不是英国格式呈现。我们已将所有服务器上的区域设置修改为英国,包括时区,但美国日期仍然存在。我们设法让它工作的唯一方法是在 web.config 中使用以下全球化条目:

<globalization uiCulture="en" culture="en-GB" />

这应该不是必需的,因为这在应用程序的另外 8 个实例上运行良好。

上面的 web.config 条目覆盖了什么?我的思考过程是,如果我知道该条目覆盖了什么,它应该会导致潜在的配置问题。

注意:更改所有三台服务器的区域设置后,IIS 以及 WCF Windows 服务都重新启动。

【问题讨论】:

  • 您是否比较了跨服务器的 machine.configs?

标签: c# asp.net sql-server asp.net-mvc wcf


【解决方案1】:

当调用 DateTime 到字符串函数而不指定文化(这是我假设某处发生的情况)时,它将使用 Thread.CurrentThread.CurrentCulture

此处的“如何确定线程的文化”部分概述了如何确定默认的当前文化。 https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture(v=vs.110).aspx#Remarks

通过设置该配置设置,它可以使用第一种方法。没有设置它依赖于最后一个。因此,您应该查看托管应用程序的用户将什么设置为他们的首选文化。

话虽如此,在网络配置中设置文化似乎比配置每个服务器的首选文化更简单。

【讨论】:

    猜你喜欢
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2011-12-30
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多