我们的管理员意外地迁移了运行.NET Windows服务的服务器(到了Windows 2008 ......因为有些旧应用程序)。它在LocalSystem帐户下运行。目标框架是.NET framework 4 Client Profile。
在我的服务中,方法DateTime.Parse
现在抛出了无效的格式异常。
当我添加到OnStart
Thread.CurrentThread.CurrentCulture = new CultureInfo("cs-CZ", false);
它变得更好,但仍然在某些方法中失败,可能在不同的therads中运行。
如何配置服务器或更改程序以使用适当的文化创建所有线程?
答案 0 :(得分:1)
从Microsoft.NET Framework 4.5及更高版本开始,您可以使用
var culture = CultureInfo.CreateSpecificCulture("cs-CZ");
CultureInfo.DefaultThreadCurrentCulture = culture;
这是documented here,但需要注意的是它可能不适用于后续创建的线程。 Microsoft.NET Framework 4.6中包含了一个深刻的解决方案,read more on it here。