我发现了一个带有新网络服务器的泡菜。我们有一个新的Web服务器,它显示的日期与旧的Web服务器不同。

我们在IIS 6.0上使用Windows Server 2003运行asp经典网页。

我们已以管理员身份登录并根据需要设置区域设置,然后将设置应用于当前用户和默认用户个人资料。

然后我们进入注册表并更新HKEY_USERS / .default / control panel / international下的相应格式。

将我们网站的asp.net配置更新为正确的代码页和区域设置。

是否有人有其他地方应用程序可以从中获取日期格式?

有帮助吗?

解决方案

我知道这不是解决问题的'正确'方法。但是,该应用程序是多年前编写的,通过规划/更改控制获取内容将是一件痛苦的事情,并且是服务器上运行的唯一应用程序。因此,可以配置服务器以满足此单个应用程序。除此之外,让我疯狂的是,应该与旧服务器配置相同的新服务器无法正常工作。

事实证明,除了 HKEY_USERS / * / Control Panel / international 之外,还有一个非unicode程序的设置。它可以在 HKLM / system / currentcontrolset / control / nls / language / Default 下找到。将其设置为正确的代码页,它是黄金。

另一方面,如果您不想直接修改注册表,可以通过控制面板中的区域设置更新所有这些值。

您可以通过“ customize ”按钮调整格式。 您可以在高级选项卡下更改“非Unicode程序的语言”。 只需确保选中高级选项卡底部的“应用于默认配置文件”。

其他提示

我认为最高投票回答是正确的,尽管它很接近。

我不得不使用注册表更改HKU \ S-1-5-19 \控制面板\国际(NT管理局)和HKU \ S-1-5-20 \控制面板\国际(网络)的所有国际化设置服务)以匹配HKU \ S-1-5-18 \控制面板\国际(本地系统)中已有的设置。

这很有效。

我手动修改了我能看到的所有不同的设置。

我认为我只需要更改S-1-5-20(网络服务)的设置。

Classic ASP默认为服务器安装时配置的区域设置ID。如果您有权访问原始服务器,请运行以下代码以获取其正在运行的区域设置ID,并验证新服务器是否正在使用该代码。

<%=Session.LCID%>

如果区域设置ID不同,并且您无法在新服务器上更改它,那么您可以在global.asa中为Session.OnStart子添加一行,用于为Session.LCID分配正确的区域设置ID的应用程序。

使用包含内容的ASP页面: -

Response.Write GetLocale

可能会提供信息,它会向您显示VBScript认为使用的语言环境。

在使用集成安全性时,我在昏暗和遥远的过去看到过这样的问题。 ASP首先需要使用它时缓存来自 a 用户配置单元的区域详细信息,然后继续使用这些设置,直到进程终止。 ASP从与当前运行的代码的用户身份相关联的用户配置单元获取这些设置。大部分时间都是DEFAULT,因为用户在系统上没有配置文件。

但是,如果用户碰巧以交互方式登录到服务器,则他们将拥有个人资料,因此会使用他们的设置。因此,我看到服务器似乎在区域设置中出现间歇性问题。

我不记得我是否在IIS6上看过这个,我肯定在IIS5上看过它。

如果您在其他帐户下运行ASP应用程序(不是IUSR_Guest) 以该帐户登录,将日期/时间格式设置为您想要的格式并重新启动IIS。

转到“控制面板” - &gt;区域和语言选项,设置所需的所有选项,然后在“高级”选项卡下选择非Unicode程序的设置,并选中“将所有设置应用于当前帐户和默认用户配置文件”。按确定并重新启动服务器。

在Windows Server 2008上,管理员有其他“管理”标签。按“复制到预约帐户”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top