我刚刚将大约 100 个 ASP.net 站点从 Windows Sever 2003 上的 IIS 6 迁移到 Windows 2008 上的 IIS 7。我刚刚注意到使用 DateTime.Parse 之类的各种代码已经开始出现错误“字符串不是识别为有效的日期时间”。我已将其归结为网站的 CurrentCulture 默认为“en-US”,因此我的英国用户正在以意外的格式输入日期。
问题是,他们从哪里获得 en-US?从顶部开始,如果我查看“控制面板 > 区域和语言”,所有内容都设置为英语(英国)。网站的 web.configs 要么没有 <globalization> 部分,要么将其设置为 <globalizationculture="auto" uiCulture="auto" />。在“IIS7 - .Net Globalization”中,所有站点的文化都设置为“Invariant Language(Invariant Country)”。
我找不到将文化设置为“en-US”的任何地方......但有些东西是。
Thread.CurrentThread.CurrentCulture.Name is outputting 'en-US'
Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencySymbol is outputting '$'
我可以通过将 <globalizationculture="en-GB" uiCulture="en-GB" /> 添加到每个 web.config 来解决这个问题,但我真的不想手动编辑大约 100 个 web.config!我不希望它从设置为 en-GB 的服务器操作系统设置中继承文化。
我错过了什么吗?