我们有一个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服务都重新启动。
答案 0 :(得分:0)
在不指定区域性的情况下调用DateTime到字符串函数时(我假设这是在某处发生的情况),它将使用Thread.CurrentThread.CurrentCulture
此处的“如何确定线程的区域性”概述了如何确定默认的当前区域性。 https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture(v=vs.110).aspx#Remarks
通过设置该配置设置,便可以使用第一种方法。没有设置,它依赖于最后一个。因此,您应该查看托管应用程序的用户已将其设置为他们的首选区域性。
话虽这么说,在Web配置中设置区域性似乎比配置每台服务器的首选区域性更容易实施区域性设置。