コンテキスト: .NET で記述されたサービスの実行を担当しています。独自のアプリケーション。SQL Server データベースを使用します。これは、ローカル マシンの Administrators グループのユーザー メンバーとして実行されました。マシンをドメインに追加する前は問題なく機能していました。
そのため、マシンをドメイン (Win 2003) に追加し、ユーザーを Power Users グループのメンバーに変更しました。
問題: 実行しようとする SQL 文の一部は、スペイン語のローカリゼーション (. ではなく , で浮動小数点数が区切られている) では「魔法のように」エラーが発生します。
VALUES 句で指定された値よりも INSERT ステートメントの列が少ない。VALUES 句の値の数は、INSERT ステートメントで指定された列の数と一致する必要があります。System.Data.SqlClient.SqlConnection.OnError (SqlException 例外、ブール値の breakConnection) で
マシンのオペレーティング システムと地域設定は英語です。アプリケーションのプロバイダーに尋ねたところ、彼は次のように述べています。
スペイン語ロケールで実行されているコードと、英語ロケールでの SQL サーバーの組み合わせがあるようです。したがって、SQL は「15,28」ではなく「15.28」を想定しています。
さまざまなレベルで間違っているように見えます (SQL Server は引数を区切るコンマと浮動小数点数に属するコンマをどのように区別できますか?)。
そのため、コードはどこかからスペイン語ロケールを取得しているようです。それが実行されているユーザーなのか、それとも他の場所なのか (グローバル ポリシーでしょうか?) はわかりません。しかし、問題は
マシン/ユーザー/ドメインごとにローカリゼーションが定義されている場所は?
犯人を探さなければならないすべての場所を知っているわけではないので、見つけるのを手伝ってください!