2017-05-29 3 views
1

Nos administrateurs ont migré de manière inattendue un serveur sur lequel mon service .NET Windows s'exécute (Windows 2008 ... en raison d'anciennes applications). Il s'exécute sous le compte LocalSystem. Le framework cible est .NET Framework 4 Client Profile.Modification de la culture par défaut pour le service Windows s'exécutant en tant que système local

Dans mon service, la méthode DateTime.Parse génère désormais une exception de format non valide.

Quand j'ajouter à OnStart

Thread.CurrentThread.CurrentCulture = new CultureInfo("cs-CZ", false); 

ça va mieux, mais encore dans certaines méthodes, il ne fonctionne pas, en cours d'exécution probablement dans différentes therads.

Comment configurer le serveur ou modifier le programme pour que tous les threads soient créés avec une culture appropriée?

+1

sur quelle version du framework? peut-être [ceci] (https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture (v = vs.110) .aspx) – dlatikay

+0

@dlatikay .NET framework 4 Profil client –

+0

J'ai besoin de reconstruire pour 4,5? –

Répondre

1

A partir de Microsoft.NET Framework 4.5 et supérieur, vous pouvez utiliser

var culture = CultureInfo.CreateSpecificCulture("cs-CZ"); 
CultureInfo.DefaultThreadCurrentCulture = culture; 

Ceci est documented here, avec la mise en garde qu'il pourrait ne pas fonctionner pour les fils créés par la suite. Une solution approfondie est incluse avec Microsoft.NET Framework 4.6, read more on it here.