C# 应用程序通过ODBC访问Sage第50行数据时出错

C# 应用程序通过ODBC访问Sage第50行数据时出错,c#,.net,odbc,windows-server-2008-r2,sage-line-50,C#,.net,Odbc,Windows Server 2008 R2,Sage Line 50,我开发了一个简单的基于C#控制台的应用程序,从Sage第50行的表中提取一些数据,并将数据上传到web服务器。它在Windows7x64上使用ODBC连接,工作非常完美。Sage帐户数据位于映射的网络驱动器上 我开发/测试此软件的PC机已完全安装Sage Line 50 2011,带有v17 ODBC驱动程序,并应用了所有更新 最终,应用程序将作为计划作业在文件服务器上运行,但当我尝试在Windows 2008 R2文件服务器(承载Sage帐户数据的同一文件服务器)上运行代码时,ODBC驱动程序

我开发了一个简单的基于C#控制台的应用程序,从Sage第50行的表中提取一些数据,并将数据上传到web服务器。它在Windows7x64上使用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配置也已确认

我只在安装光盘上安装了Sage ODBC驱动程序,因为我不想在服务器上安装完整的Sage应用程序,并注意到S17DBC32.dll文件与我的工作站上安装的版本不同(可能是因为Sage帐户安装了自动更新)。我尝试在文件服务器上的原始文件上方复制此新文件,并重新创建了ODBC配置,但这没有帮助

自从在旧的DLL文件(它是生产服务器)上复制DLL文件后,我还没有重新启动服务器。服务器是否需要重新启动才能使新DLL生效,或者是否有其他方法触发此操作

也许我找错了方向,Sage ODBC驱动程序DLL版本无关吗?非常感谢您的帮助


编辑


有机会重新启动服务器,而新的DLL没有产生任何影响。我仍然看到同样的错误。

我最终求助于在服务器上安装完整的Sage帐户(yuk!),应用了自动更新,现在我的应用程序工作正常。

我求助于在服务器上安装完整的Sage帐户(yuk!),应用了自动更新,现在我的应用程序运行良好。

在干净的windows 8安装上也有同样的问题。修复程序是安装.NET3.5运行时


在我的.net应用程序失败并出现相同错误(MS Access引发的相同错误没有提示安装)之后,Windows实际上自己提出了建议。

在干净的Windows 8安装中也出现了相同的问题。修复程序是安装.NET3.5运行时


在我的.net应用程序因相同错误而失败后(MS Access引发的相同错误没有提示安装),Windows实际上自己建议了它.

您需要安装32位驱动程序,如果要访问ODBC,请转到控制面板(64位版本),然后访问C:\Windows\SysWOW64\odbcad32.exe

您需要安装32位驱动程序,如果要访问ODBC,请转到控制面板(64位版本)C:\Windows\SysWOW64\odbcad32.exe

谢谢,我设置这个程序已经有几个月了,但碰巧的是,我将不得不将我的.net应用程序移动到另一个没有安装Sage的服务器上,所以我将尝试一下。-如果可以避免的话,我肯定不想在服务器上安装sage。谢谢,我已经安装了几个月了,但碰巧的是,我将不得不将我的.net应用程序移动到另一个没有安装sage的服务器上,所以我会尝试一下。-如果可以避免的话,我肯定不想在服务器上安装sage。@ashga实际上,根据sage的说法,这就是解决方案。就个人而言,我不喜欢它,因为我只希望ODBC驱动程序在服务器上正常运行,而不需要Sage Accounts应用程序的开销。我一直在开发一个本机ODBC应用程序(在C中),该应用程序需要访问Sage Line 50数据文件。我花了整整半天的时间试图让32位ODBC驱动程序工作,但没有成功,即使在我的机器上安装了全脂应用程序!我知道这仍然只是一个解决办法,但似乎适用于v23的64位ODBC驱动程序确实可以轻松工作@事实上,根据sage的说法,这就是解决方案。就个人而言,我不喜欢它,因为我只希望ODBC驱动程序在服务器上正常运行,而不需要Sage Accounts应用程序的开销。我一直在开发一个本机ODBC应用程序(在C中),该应用程序需要访问Sage Line 50数据文件。我花了整整半天的时间试图让32位ODBC驱动程序工作,但没有成功,即使在我的机器上安装了全脂应用程序!我知道这仍然只是一个解决办法,但似乎适用于v23的64位ODBC驱动程序确实可以轻松工作。根据问题
ODBC配置也已确认。
。ODBC配置正确,问题在于驱动程序的安装。根据问题
,ODBC配置也已得到确认。
。ODBC配置正确,问题在于驱动程序的安装。