我开发了一个简单的基于 C# 控制台的应用程序,用于从 Sage Line 50 中的表中提取一些数据,并将数据上传到 Web 服务器。它用于 Windows 7 x64 上的 ODBC 连接,并且运行良好。Sage 帐户数据位于映射的网络驱动器上。
我开发/测试过此软件的 PC 已完整安装 Sage Line 50 2011,带有 v17 ODBC 驱动程序,并已应用所有更新。
最终,应用程序将在我们的文件服务器上作为计划作业运行,但是当我尝试在我们的 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 配置也已确认。
我只从安装 CD 安装了 Sage ODBC 驱动程序,因为我不想在我们的服务器上安装完整的 Sage 应用程序,并注意到 S17DBC32.dll 文件与我的工作站上安装的版本不同(可能由于 Sage 帐户安装的自动更新)。我尝试将这个较新的文件复制到我们文件服务器上原始文件的顶部,并重新创建了 ODBC 配置,但这没有帮助。
自从将 DLL 文件复制到旧的(它是生产服务器)上后,我还没有重新启动服务器。服务器是否需要重新启动才能使新的 DLL 生效,或者是否有其他触发方式?
也许我在叫错树,Sage ODBC 驱动程序 DLL 版本是否无关紧要?非常感谢任何帮助。
编辑
有机会重新启动服务器,新的 DLL 没有任何区别。我仍然看到同样的错误。