上下文:我负责运行一个用 .NET 编写的服务。专有应用程序。它使用 SQL Server 数据库。它作为本地计算机中管理员组的用户成员运行。在我将机器添加到域之前它工作正常。
因此,我将机器添加到域(Win 2003)并将用户更改为 Power Users 组的成员,现在,
问题:它试图执行的一些 SQL 语句在西班牙语本地化中是“神奇的”(其中 , 分隔浮点数而不是 .),从而导致错误。
INSERT 语句中的列数少于 VALUES 子句中指定的值。VALUES 子句中的值数必须与 INSERT 语句中指定的列数相匹配。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection)
机器中的操作系统和区域设置为英文。我问了应用程序的提供者,他说:
看起来您组合了在西班牙语言环境下运行的代码和在英语语言环境下运行的 SQL 服务器。所以 SQL 需要 '15.28' 而不是 '15,28'
在各个级别对我来说都是错误的(SQL Server 如何区分逗号分隔参数和属于浮点数的逗号?)。
因此,代码似乎从某个地方获取了西班牙语言环境,我不知道它是作为它运行的用户,还是其他地方(可能是全局策略?)。但问题是
在机器/用户/域的基础上定义本地化的地方是什么?
我不知道我必须寻找罪魁祸首的所有地方,所以请帮助我找到它!