我有Windows Server 2003 R2上的Windows服务运行(C#,.NET 2.0)。在一台服务器中,System.Threading.Thread.CurrentThread.CurrentCulture
为{en-AU},另一台为{en-US}。 这在调用DateTime对象上的ToString()时导致了差异。我希望文化是{en-AU}。.NET进程如何获取文化信息?
我检查了“区域和语言设置”。在这两台服务器中,“区域选项”选项卡显示“英语(Asutralia)”。但在“高级”选项卡中,其中一个显示“英语(美国)”,另一个显示“英语(澳大利亚)”。所以这一定是造成差异的原因。虽然我想知道为什么“高级”选项卡为什么说“您要使用的非Unicode代码程序的语言版本”,但我认为.NET进程是Unicode,不应该受此影响。
如何.NET运行时确定的文化使用?任何详细的参考将有所帮助。
在这种情况下,服务(实际上是WCF托管服务)正在特定的服务用户帐户下运行。但我已经在另一台机器上为该服务设置了相同的帐户进行测试,并且它的行为正确。只有在高级选项卡中具有“英语(美国)”的计算机上,该服务的行为才不正确。 – softveda 2009-11-17 02:06:49
我已成功登录为机器中的服务帐户,格式为“英语(美国)”。所以用户配置文件是不正确的。这与高级选项卡无关。感谢您指向正确的方向。 – softveda 2009-11-17 02:22:17