Contexte: Je suis en charge de l'exécution d'un service écrit en .NET. Application propriétaire Il utilise une base de données SQL Server. Il s'est exécuté en tant que membre utilisateur du groupe Administrateurs sur la machine locale. Cela a bien fonctionné avant que j'ajoute la machine à un domaine.Comment vérifier les paramètres régionaux dans lesquels une application .NET s'exécute, sans avoir accès à son code source?
Alors, j'ai ajouté la machine à un domaine (Win 2003) et a changé l'utilisateur à un membre du groupe d'utilisateurs de puissance et maintenant, le
Problème: Certaines des phrases SQL il tente d'exécuter sont "magiquement" dans la localisation espagnole (où, sépare les nombres à virgule flottante au lieu de.), conduisant à des erreurs.
Il y a moins de colonnes dans l'instruction INSERT que les valeurs spécifiées dans la clause VALUES. Le nombre de valeurs dans la clause VALUES doit correspondre au nombre de colonnes spécifié dans l'instruction INSERT . à System.Data.SqlClient.SqlConnection.OnError (SqlException exception, Boolean breakConnection)
système d'exploitation et les paramètres régionaux dans la machine sont en anglais. J'ai demandé au fournisseur de l'application et il a dit:
On dirait que vous avez une combinaison de le code en cours d'exécution dans l'environnement linguistique espagnol et serveur SQL sous paramètres régionaux anglais. Alors le SQL attend '15 .28' et non '15, 28'
Ce qui semble mal à moi dans différents niveaux (comment SQL Server distinguer entre des virgules pour séparer les arguments et les virgules appartenant à un nombre à virgule flottante?). Donc, le code semble s'emparer des paramètres locaux espagnols quelque part, je ne sais pas si c'est l'utilisateur qu'il exécute, ou ailleurs (politique globale, peut-être?). Mais la question est
Quels sont les endroits où la localisation est définie sur une base machine/utilisateur/domaine? Je ne connais pas tous les endroits où je dois chercher le coupable, alors aidez-moi s'il vous plaît à le trouver!
Si vous pensez que ma réponse répond à votre question initiale, terminez-la et posez une nouvelle question. De toute façon je vais essayer d'obtenir la réponse et l'afficher ici :) –