SSIS输入变量名以“指定”结尾 - 为什么?

时间:2011-07-27 20:29:51

标签: visual-studio-2008 .net-3.5 ssis sql-server-2008-r2

我正在尝试从SSIS中使用一些WCF服务。我从开发机器上工作得很好。但是,当另一个开发人员尝试这样做时,他们会遇到问题。

如果其他开发者复制了我的.DTSX文件,那么它可以正常工作。但是,如果他们自己创建它,那么它就无法连接(从WCF端监视它)。

我们注意到SSIS如何作用于两台机器有很大的不同,我怀疑这是问题的原因。两台SSIS机器都从服务中下载相同的WSDL数据。但是,我的机器上的Web服务任务(功能上的)具有与其他开发机器(非功能机器)不同的输入集。例如,如果我尝试调用的方法是DoStuff(int data1, decimal data2, string msg),我将有5个输入:data1 (int)data1Specified (bool)data2 (decimal)data2Specified (bool)和{ {1}}而另一台机器缺少msg (string)data1Specified输入。当使用其他输入时,似乎这个data2Specified变量总是由我的机器为除了字符串之外的所有数据类型创建(没有经过详尽的测试但是在那里抛出了~8种数据类型)但是其他开发者的机器从未创建这些xxxSpecified变量。

还有一点要注意:如果另一个dev从我的机器导入xxxSpecified并直接运行它,它就可以了。如果他点击“下载WSDL”按钮,即使它下载完全相同的WSDL,他也会在指定要调用的服务/方法后获得一组不同的输入。显然,他的SSIS开发环境正在做出与我的不同的决策,我们无法弄清楚为什么或如何使他的行为更像我的。我们甚至都没有意识到为什么这些.DTSX变量显然是必要的(WSDL中“指定”存在于NOWHERE中)。

为什么SSIS会生成这些xxxSpecified输入,为什么在一个环境中而不是另一个环境?

  • 澄清:“GoodDevBox”从头开始手动创建项目,并且它可以工作(即具有xxxSpecified输入)。 “BadDevBox”从头开始手动创建项目,并且它不起作用(即缺少xxxSpecified输入)。该问题与共享项目/解决方案无关。实际上,如果“BadDevBox”不重新处理WSDL,那么共享它们是使其工作的唯一方法。

2 个答案:

答案 0 :(得分:0)

我已经体验过,如果你有配置文件,或者你已经构建/编译了解决方案,它会在配置文件中存储凭据和设置,包括网络凭证。

将解决方案从一台计算机传递到另一台计算机时,无论用户是否使用其登录信息打开解决方案,它都会将这些凭据保留在配置中。

检查配置文件,并在有效的配置文件与未配置的配置文件之间进行比较

答案 1 :(得分:0)

我们最终刚刚在有问题的计算机上卸载并重新安装了SQL Server,运行了Windows更新,问题就消失了。仍然不知道问题是什么,我也不知道我的问题的真正答案:为什么生成名称末尾带有“指定”的变量。