不同网站上的货币格式不同

时间:2012-10-30 19:38:23

标签: asp.net iis globalization

我在这里有一个奇怪的问题,我不确定它的ASP.NET版本,IIS或者我做了什么愚蠢的事情(经验告诉我它可能是第3项。)

我有两个网站在w2k3上工作正常,一个是ASP.NET 1.1,另一个是2.0,货币在网页上正确显示。

由于将这些迁移到w2k8盒和IIS 7,我有一个奇怪的问题,1.1网站现在显示的是$而不是用户浏览的本地货币。但2.0网站运行良好。

两者都将IIS设置为相同的全球化。 (没有文化,客户是假的,UI文化是英语(en))。

两个站点都托管在同一台服务器上,我能看到的唯一区别是; 1使用<Databinder.Eval(... Price, "{0:c}")>绑定,另一个绑定到使用String.Format("{0:c}");

的属性

因为代码没有改变,我觉得这是一个IIS问题。但由于两个站点在IIS中具有相同的全球化设置,因此我看不出它可以。

所以,任何人都知道什么是什么?如何解决它?

3 个答案:

答案 0 :(得分:0)

检查新服务器上控制面板的“区域和语言”选项,确保它们与旧框中的“设置”匹配。

答案 1 :(得分:0)

AFAIK,至少String.Format("{0:c}"),可能<Databinder.Eval(... Price, "{0:c}")>也将使用属性System.Threading.Thread.CurrentCulture的任何值。

无论您是否在页面上设置它,无论如何都会为其分配值。并且认为这些设置将来自服务器设置是非常合理的,从您的描述看起来似乎是en-US。因此$作为货币符号...你可能会问自己为什么它之前有效......
那么,你确定你已经复制了所有的配置文件吗? 另一个线索可能是,您已经模拟了.Net 1.1的版本而不是新盒子上的真实版本。它可能不是100%兼容......

答案 2 :(得分:0)

在英国机器服务器2012上开发的正在运行的IIS 10站点已移至GCP默认构建服务器2016,该服务器“开箱即用”。

在网站上$符号会出现在£符号以前的位置。

我在设置>区域和语言中进行了所有更改。英国语言,键盘,更新和安全性,左侧驱动器等。绝对没有任何区别。

最后在“控制面板”>“区域”中找到它。在添加英国英语作为显示语言之后(并摆脱了美国英语)

Region > Administrative > Welcome screen and new user accounts.

我需要转到管理标签,欢迎屏幕和新的用户帐户。复制设置。

现在该网站终于显示了正确的货币符号。