我在这里有一个奇怪的问题,我不确定它的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中具有相同的全球化设置,因此我看不出它可以。
所以,任何人都知道什么是什么?如何解决它?
答案 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)