我这里有一个奇怪的问题,我不确定是它的ASP.NET版本,IIS,还是我在做一些愚蠢的事情(经验告诉我可能是第3项)。
我有两个网站在w2k3上运行良好,一个是ASP.NET 1.1,另一个是2.0,货币在网页上正确显示。
由于将它们迁移到w2k8和IIS7,我遇到了一个奇怪的问题,1.1站点现在显示的是$,而不是用户浏览到的本地货币。但是2.0版的网站运行得很好。
两者都将IIS设置为相同的全球化。(无区域性,客户端为false,UI区域性为英语(en))。
这两个站点都托管在同一台服务器上,我能看到的唯一区别是:一个使用<Databinder.Eval(... Price, "{0:c}")>
绑定,另一个绑定到使用String.Format("{0:c}");
的属性
因此,由于代码没有更改,我觉得这是IIS的问题。但是由于这两个站点在IIS中都有相同的全球化设置,所以我不认为这是可能的。
那么,谁知道这是怎么回事,怎么解决它呢?
发布于 2012-10-31 05:29:14
检查新服务器上控制面板中的区域和语言选项,确保它们与旧服务器上的like设置相匹配。
发布于 2012-11-01 02:29:50
AFAIK,至少是String.Format("{0:c}")
,可能还有<Databinder.Eval(... Price, "{0:c}")>
都将使用属性System.Threading.Thread.CurrentCulture的值。
无论您是否在页面上设置它,该值都将被分配给它。很有理由认为,这些设置将来自服务器设置,根据您的描述,服务器设置似乎是en-US。因此$作为货币符号..。你可能会问自己为什么它以前是有效的.
那么,你确定你已经复制了所有的配置文件吗?
另一个线索可能是,您已经在新机器上模拟了.Net 1.1的版本,而不是真正的版本。它可能不是100%兼容的...
发布于 2020-12-16 16:41:08
在网站上,$符号出现在to符号以前的位置。
我在“设置”>“区域和语言”中尽可能地更改了所有内容。英国语言,键盘,更新和安全,在左边开车等等。绝对没有任何不同。
最后在控制面板>区域中找到了它。在添加英国英语作为显示语言(并去掉美国英语)之后
我需要进入管理选项卡、欢迎屏幕和新用户帐户。复制设置。
现在,网站终于可以显示正确的货币符号了。
https://stackoverflow.com/questions/13146440
复制相似问题