C# 当包在开发人员以外的其他计算机上运行时,ODBC连接管理器中出现SSIS错误

C# 当包在开发人员以外的其他计算机上运行时,ODBC连接管理器中出现SSIS错误,c#,sql-server,ssis,C#,Sql Server,Ssis,我已经创建了一个SSIS包,它通过ODBC连接到数据库 该软件包在Visual Studio 2012中运行良好,在我开发该程序的计算机上,也在VS2012之外运行良好。但是,当我在另一台计算机上运行包时,它就不再运行了。它前天在测试机上运行,没有出现问题。它昨天没有,今天也没有在同一台测试机上,而它仍然在development-pc上运行 该包使用connectionstring,因此我将保护级别设置为“SaveSensiveDataWithKey”。我正在C#控制台应用程序中运行该包(但也尝

我已经创建了一个
SSIS
包,它通过
ODBC
连接到数据库

该软件包在Visual Studio 2012中运行良好,在我开发该程序的计算机上,也在VS2012之外运行良好。但是,当我在另一台计算机上运行包时,它就不再运行了。它前天在测试机上运行,没有出现问题。它昨天没有,今天也没有在同一台测试机上,而它仍然在development-pc上运行

该包使用connectionstring,因此我将保护级别设置为“SaveSensiveDataWithKey”。我正在C#控制台应用程序中运行该包(但也尝试在控制台应用程序之外执行dtsx文件本身)。无论哪种方式,它在我的开发PC上都可以正常工作,在测试机器上都不能正常工作

我得到的错误是:

"Error in Microsoft.SqlServer.Dts.Runtime.Package/Connection manager 'nameOfTheServer' : There was an error trying to establish an Open Database Connectivity (ODBC) connection with the database server.

Error in Microsoft.SqlServer.Dts.Runtime.TaskHost/ODBC Source [72] : The Acquire Connection method call to the connection manager 'nameOfTheServer' failed with error code 0xC0014009."
我在谷歌上搜索了错误代码,我遇到的建议似乎都围绕着32vs64位的问题。我尝试将其作为32位和64位运行,但没有区别。 我的控制台应用程序是以x86为目标构建的,因此我认为它以32位运行程序(以及软件包)


有什么建议吗?

在测试机上,您是否可以使用SSIS以外的其他工具连接到数据库,以确保没有网络问题?是的,我可以通过测试机上的Excel fx访问数据库。您是否可以验证Integration services 2012是否安装在测试机上?如果运行
dtexec/?
,则每台计算机上的版本号应匹配。您还可以尝试使用
/X86
标志运行包。减少变量以查找问题:使用DTEXEC.EXE(即批处理文件)在您的开发人员pc上运行它,并确保它正常工作。现在以您自己的身份登录到测试PC,并使用相同的批处理文件来运行它。它有用吗?另外,请确保您没有使用DSN(数据源名称)访问您的数据,因为这需要在另一台电脑上设置数据源名称。最有帮助的是确定工作日和不工作日之间的变化。Integration services 2012安装在测试机上。dtexec/?在开发机器和测试机器上返回不同的版本号,但我找不到更新测试机器版本的方法。我刚刚尝试在测试机上构建并运行该程序,看看这是否有什么不同(将项目复制到测试机,并在昨天安装VS2013后在VS2013中构建)。我在控制台中仍然得到相同的错误,VS2013中的输出以(0xc000013a)结束。虽然我昨天早上刚在测试机上重新安装了windows fresh。