【发布时间】:2016-02-19 10:42:20
【问题描述】:
我有两个引用 Web 服务的脚本任务。两个脚本任务都引用同一个 Web 服务。一旦我创建了 web 服务的实例并建立了我的 连接,我想将相同的实例传递给下一个脚本任务,因为我需要进行另一个 Web 服务调用。
为了在我的第一个任务中实现这一点,我执行以下操作
- 创建对象类型的包级变量IPSService
- 创建 Web 服务引用
- 添加使用 ST_d4beade8c14e45c3af4e582df4c22c89.csproj.uk.co.iress.webservices 的 using 语句; (从对象浏览器获取参考)
- 在脚本任务中的服务实例中创建
- 将对象分配给 Dts.Variables["User::IPSService"].Value = iPSService;
- 将脚本属性中的 ReadWrite 变量设置为 User::IPSService。
在第二个脚本任务中,我执行以下操作
- 将脚本任务的只读变量属性设置为 User::IPSService
- 创建 Web 服务引用
- 添加使用 ST_d4beade8c14e45c3af4e582df4c22c89.csproj.uk.co.iress.webservices 的 using 语句; (从对象浏览器获取参考)
- 在main方法中,IPSService iPSService1 = (IPSService)Dts.Variables["User::IPSService"].Value;
但是当我运行任务时,我收到以下错误
错误:System.Reflection.TargetInvocationException:调用的目标已引发异常。 ---> System.InvalidCastException:无法将类型为“ST_d4beade8c14e45c3af4e582df4c22c89.csproj.uk.co.iress.webservices.IPSService”的对象转换为类型“ST_d4beade8c14e45c3af4e582df4c22c89.csproj.uk.co.iress.webservices.IPSService”。 在 ST_d4beade8c14e45c3af4e582df4c22c89.csproj.ScriptMain.Main()
我只是做了一个小改动以避免传递对象并在第二个脚本方法中重新创建对象,但我收到一个新错误错误:System.Reflection.TargetInvocationException:调用目标已引发异常。 ---> System.Web.Services.Protocols.SoapException: 无效的 SDO 主题 TD_ERROR。
谁能告诉我是什么问题
【问题讨论】:
-
你能解释一下
Dts.Variables["User::IPSService"].Value = iPSService这一行iPSService的值是多少?最好添加一些图片以更清楚地了解您的问题 -
它是一个 webservice 的类,借助它你可以访问 webservice 方法。所以我基本上是在创建它的一个对象来访问 web 服务方法。我能够在第一个脚本任务中访问 webservice 方法。当我尝试将此对象传递给第二个脚本任务时,就会出现问题。
标签: ssis