在我的代码中的许多地方,我使用ToString c方法将值转换为货币: 的ToString( “C”)
在我的开发机器上,这正确地格式化了符合我的区域设置的值,因此货币显示如下: £100.00
但是在生产服务器上,它忽略了Windows区域设置,而是默认为基于美国的设置:
$ 100.00
我遇到类似DateTimes的问题,但转换为ISO 8601格式。
生产服务器从哪里挑选出来?
答案 0 :(得分:2)
在web.config
文件中设置适当的文化:
<globalization uiCulture="en-GB" culture="en-GB" />
答案 1 :(得分:0)
您可以在ToString功能中强制使用Culture
number.ToString("c", new CultureInfo("en-GB"))
答案 2 :(得分:0)
我尝试了此处提到的所有其他解决方案,但一直遇到原始问题中提到的同一问题。
最后,通过更改谁在IIS中运行应用程序池解决了我的问题。设置为LocalSystem时,无论我将区域设置为什么或如何修改web.config文件,都将始终以美元显示货币。
当我将应用程序池更改为以我的计算机上的任何其他交互式用户身份运行时,它立即开始反映区域设置。