我正在尝试从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
输入,为什么在一个环境中而不是另一个环境?
答案 0 :(得分:0)
我已经体验过,如果你有配置文件,或者你已经构建/编译了解决方案,它会在配置文件中存储凭据和设置,包括网络凭证。
将解决方案从一台计算机传递到另一台计算机时,无论用户是否使用其登录信息打开解决方案,它都会将这些凭据保留在配置中。
检查配置文件,并在有效的配置文件与未配置的配置文件之间进行比较
答案 1 :(得分:0)
我们最终刚刚在有问题的计算机上卸载并重新安装了SQL Server,运行了Windows更新,问题就消失了。仍然不知道问题是什么,我也不知道我的问题的真正答案:为什么生成名称末尾带有“指定”的变量。