Sage Line 50のテーブルからいくつかのデータをプルし、そのデータをWebサーバーにアップロードするための単純なC#コンソールベースのアプリケーションを開発しました。Windows 7 x64のODBC接続で使用され、完全に機能します。Sageアカウントのデータは、マップされたネットワークドライブにあります。
このソフトウェアを開発/テストしたPCには、v17ODBCドライバーを備えたSageLine 50 2011が完全にインストールされており、すべての更新が適用されています。
最終的に、アプリケーションはファイルサーバーでスケジュールされたジョブとして実行されますが、Windows 2008 R2ファイルサーバー(Sageアカウントデータをホストするのと同じファイルサーバー)でコードを実行しようとすると、ODBCドライバーから例外がスローされます。 、 次のように:
ERROR [28000] User ID or Password invalid
ERROR [01000] The driver returned invalid (or failed to return) SQL_DRIVER_ODBC_VER: 2.00
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr).
パスワードが正しいことを私は知っているので、パスワードエラーは誤った名称です。ODBC構成も確認されています。
サーバーに完全なSageアプリケーションをインストールしたくなかったため、インストールCDからSage ODBCドライバーをインストールしただけで、S17DBC32.dllファイルがワークステーションにインストールされたものとは異なるバージョンであることに気付きました(おそらくSageアカウントがインストールする自動更新のため)。この新しいファイルをファイルサーバー上の元のファイルの上にコピーして、ODBC構成を再作成しようとしましたが、それは役に立ちません。
DLLファイルを古いファイル(本番サーバー)にコピーしてから、サーバーを再起動していません。新しいDLLを有効にするためにサーバーを再起動する必要がありますか、それともこれをトリガーする別の方法がありますか?
間違ったツリーを吠えているのかもしれませんが、Sage ODBCドライバーDLLのバージョンは関係ありませんか?どんな助けでも大歓迎です。
編集
サーバーを再起動する機会がありましたが、新しいDLLは何の違いもありませんでした。それでも同じエラーが表示されます。