Контекст:
Я отвечаю за запуск службы, написанной на .NET. Собственное приложение. Он использует базу данных SQL Server. Он работал как пользователь группы «Администраторы» на локальном компьютере. Он работал нормально, прежде чем я добавил машину в домен.
Итак, я добавил машину в домен (Win 2003) и изменил пользователя на члена группы «Опытные пользователи», а теперь
Проблема:
Некоторые из SQL-предложений, которые он пытается выполнить, «магически» испанской локализации (где вместо.) Отделяются числа с плавающей запятой, что приводит к ошибкам.
В INSERT меньше столбцов
утверждение, чем значения, указанные в
ЗНАЧЕНИЕ Количество значений в
предложение VALUES должно соответствовать
количество столбцов, указанных в
Вставить заявление. в
System.Data.SqlClient.SqlConnection.OnError (SqlException
исключение, Boolean breakConnection)
Операционная система и региональные настройки аппарата на английском языке. Я спросил поставщика приложения, и он сказал:
Похоже, у вас есть комбинация
код работает под испанским языком, и
SQL-сервер под английской локалью. Так
SQL ожидает «15 .28», а не
'15, 28'
Что выглядит неправильно для меня на разных уровнях (как SQL Server может различать запятые для разделения аргументов и запятые, принадлежащие числу с плавающей запятой?).
Итак, кажется, что код захватывает испанский язык откуда-то, я не знаю, является ли он пользователем, с которым он работает, или где-то еще (может быть, глобальной политикой?). Но вопрос
В каких местах локализация определяется на основе компьютера / пользователя / домена?
Я не знаю всех мест, где мне нужно искать виновного, поэтому, пожалуйста, помогите мне найти его!