2009-01-06 327 views
7

我有一个托管的VPS由英国托管公司托管,由于某种原因设置为美国设置。事实上,直到最近,区域设置是“英国 - 美国”。我已更正区域设置,但我的应用程序仍在使用错误的日期格式。请参阅:在IIS 6.0中更改默认语言环境

http://www.albaassoc.com/events/listevents.aspx

默认的日期应该是当前日期日期+ 3个月,但你可以看到,DD和MM字段交换。注意:AJAX日历扩展程序手动设置为dd/MM/yyyy,这就是为什么日历弹出窗口认为我们对6月/ 7月而非1月感兴趣的原因!

我知道有不同的方法来设置页面或应用程序使用特定的语言环境,但我宁愿去一个全球性的方法。

是否有可能重新配置IIS以在不同的语言环境中工作,或者如果不能,我可以调整machine.config,以便它是一次性更改?

我有与主机开出罚单,但我不会认为我的呼吸 - 他们不会想重装IIS ...

在此先感谢。

回答

6

通过globalization元素,您可以为网站(通过web.config)或整个机器(通过machine.config)设置文化和uiculture。

+0

嗯......试过了。智能感知不喜欢文化属性,而且它似乎也无法工作。当我回到我的办公桌时,我会张贴我试过的代码。 – CJM 2009-01-06 22:14:08

+0

我试图通过在一个经典的ASP应用程序的网站web.config,但它没有奏效。我猜它只适用于ASP.NET应用程序,不适用于在IIS级别更改区域设置。 – GiddyUpHorsey 2011-11-17 23:10:18

5

我刚刚收到类似的问题(Windows Server 2008,IIS 7)。我可以通过编辑Web配置文件来修复它,但是就像你我想要一个全局修复程序。

该解决方案是在配置面板的区域设置。我不知道你(你的操作系统是什么),但在WS2008下,在区域设置下有一个管理选项卡。它允许您将登录用户(您)的设置复制到管理帐户(在这种情况下为网络服务)。重新启动,并得到它的权利。

+0

干杯尼古拉斯 - 我会看看那个。 – CJM 2009-02-15 00:34:18

+0

你是对的Nicolas,实际上有一个选项在:控制面板 - >区域和语言选项 - >高级 - >检查'将所有设置应用到当前用户帐户和默认用户配置文件'。这对我有效。谢谢。 – lidermin 2011-02-22 20:59:46

4

问题往往在于运行IIS或您的应用程序所属的应用程序池的用户是安装服务器时创建的系统帐户。因此,他们继承了当时默认的语言环境。

如果你不能在区域和语言选项中修复它,你总是可以直接在注册表中尝试编辑(通常的注意事项是乱搞注册表可能严重影响Windows)。区域设置全部在HKEY_USERS \ {userid} \ Control Panel \ International下 - 如果您比较了每个用户和HKEY_CURRENT_USER \ Control Panel \ International下的内容,那么应该明白要更改哪些内容。我在Windows 2000服务器上做了几次这样的操作,并且工作正常。

另一种选择是在机器上用正确的语言环境创建一个新用户,然后将IIS和应用程序池都设置为以该身份运行。

1

我有一个问题,日期格式为mm/dd/yyyy,当我希望它是dd/mm/yyyy。 我使用的是Windows Server 2003和IIS 6

解决方法是将以下内容添加到任何Web配置文件,然后重新启动服务器,它应该工作得很好。

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" /> 
1

一个古老的线程的位,但我仍然期待现已解散的阿兹特克文明在其顺神的赞美写了一些传统的经典ASP网站后。

服务器移动阻止了所有日期代码的工作并牺牲了一只鸡没有任何帮助,因此这里是IIS 7中非常容易解决的问题,可能是因为没有其他人像我一样遭受痛苦。

  1. 转到IIS管理器。
  2. 选择要应用于所有站点的根服务器节点,或者如果要单独保留服务器默认值,请选择您遇到问题的站点节点。
  3. 在IIS部分,双击ASP图标。
  4. 将区域设置ID设置为您所需的区域设置(英国2057)。

这应该立即生效。

另外,你可以去买一个DeLorean,回去及时杀死程序员谁决定FormateDateTime(d, vbLongDate)是生成一个数据库中使用的日期的最佳方式。或者说服客户给我很多钱来取代整个事情。好的。