2009-07-07 4 views
6

Dans une application Web, j'ai un IHttpHandler qui, lorsqu'il est appelé, démarre une application régulière qui se connecte à une base de données Firebird et analyse, entre autres, certaines dates de la base de données.Process.Start spécifiez la culture

Lorsqu'il est exécuté à partir du bureau, l'application fait ce qu'il devrait sans problème. Mais quand il est commencé à partir du httpHandler se termine avec la mauvaise culture et ne parvient pas à analyser les dates. J'ai défini la culture à la fois web.config et CurrentThread.CurrentCulture mais elle se termine toujours par la mauvaise. Tout cela est exécuté à partir d'un Windows Server 2003 anglais avec la culture définie sur sv-SE.

Y a-t-il un moyen de démarrer une application avec System.Diganotics.Process.Start avec une culture spécifique? S'il n'y a pas quelle culture le processus nouvellement commencé utilise-t-il?

+0

Pouvez-vous expliquer plus loin, qu'essayez-vous d'accomplir? – Lazarus

Répondre

2

Je ne pense pas qu'il existe un moyen de spécifier la culture. La classe CultureInfo est spécifique à .NET, et pour autant que je sache, il n'y a pas de notion spécifique à l'application d'une culture dans Windows. Il n'existe aucun moyen de spécifier une culture à l'aide des classes Process et ProcessStartInfo. Cependant, je crois que la culture est associée à l'utilisateur actuel, ce qui peut arriver, c'est que votre application Web fonctionne dans le contexte d'un utilisateur différent, donc quand elle démarre à partir de l'application web, l'autre application obtient son paramètres de culture des utilisateurs. Par conséquent, vous pouvez modifier la culture (paramètres régionaux) de l'utilisateur utilisé pour exécuter l'application Web. D'autre part, si votre application '.NET' est en cours d'exécution, vous pouvez simplement coder la culture dans celle-ci.

+0

Oui, j'ai l'impression que cela pourrait avoir un certain paramètre utilisateur à faire. Malheureusement, ce n'est pas une application .NET et je ne peux pas le modifier facilement. Donc la question restante est. Comment puis-je modifier le paramètre régional pour un compte système? – Tjelle

+0

Après un peu de recherche, on dirait que les Locales sont l'équivalent natif de Windows pour CultureInfo-s de .NET. Une description générale ici: http://msdn.microsoft.com/en-us/goglobal/bb688174.aspx Je n'ai trouvé aucun moyen de modifier par programme les paramètres régionaux de l'utilisateur. Il pourrait y avoir, alors peut-être que je n'ai pas cherché assez dur. Il peut y avoir un moyen de le faire via une commande de ligne de commande (une question candidate ServerFault?). Si vous souhaitez expérimenter, vous pouvez essayer de créer temporairement un compte interactif (ajoutez-le au groupe Utilisateurs), de vous connecter et de modifier le paramètre via l'interface utilisateur. –

Questions connexes