2

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

我有 2 个在 w2k3 上运行良好的网站,1 个是 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 中具有相同的全球化设置,我认为不可能。

那么,有谁知道发生了什么以及如何解决它?

4

3 回答 3

0

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

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

于 2012-10-31T18:29:49.600 回答
0

从新服务器的控制面板检查区域和语言选项,并确保它们与旧盒子上的类似设置相匹配。

于 2012-10-30T21:29:14.130 回答
0

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

在网站上 $ 符号出现在 £ 符号过去的位置。

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

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

区域 > 管理 > 欢迎屏幕和新用户帐户。

我需要进入管理选项卡、欢迎屏幕和新用户帐户。复制设置。

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

于 2020-12-16T08:41:08.087 回答