尝试在脚本任务(SSIS)中添加Web引用时,为什么会出现错误?

时间:2015-03-05 16:20:14

标签: visual-studio-2010 web-services ssis web-reference sql-server-data-tools

我正在尝试在客户端服务器上的SSIS包中添加Web引用,以便与Web服务进行通信。

在我的脚本任务中,我可以添加Web引用,在代码中引用它,成功构建并保存它。

但是当我退出脚本任务编辑器时,我收到一个脚本错误,说明 “包中包含的脚本有编译错误。您要保存更改吗?”

如果我在此处按是,我的脚本任务会在其上显示一个红叉,并显示 “找不到脚本的二进制代码。”。

即使我创建了一个新项目,添加一个脚本任务,也可以添加相同结果的Web引用(脚本任务中没有其他代码)。

但是,它可以很好地添加相同的引用作为服务引用,没有错误。问题是这个Web服务的所有者明确表示我必须使用Web引用,因为它的方法是VS2005 Web服务方法。

我在我的本地计算机上尝试了相同的操作,它与Web引用一起工作!我能想到的唯一区别是我在本地机器上使用Microsft Visual Studio 2012(数据工具),服务器使用Microsoft Visual Studio 2010(数据工具)。

我还尝试在我的计算机上创建SSIS包,将其移动到服务器,打开它(如果我没有更改脚本任务中的任何内容,则没有错误)然后运行包。 出现以下错误消息 “调用目标已抛出异常”

Invocation error ssis

在这种情况下,如果我打开脚本任务并进行任何更改(甚至添加注释),我在退出脚本任务后得到了相同的错误(找不到脚本的二进制代码。)

我尝试了什么:

其他信息:

  • 服务器:Windows Server 2012

  • 服务器上的互联网访问

  • 服务器上安装了.NET Framework 2.0,3.0,3.5和4.5。

  • 安装了客户端工具SDK和客户端工具向后兼容性 在服务器上。

我在网上搜索解决此问题的人但没找到任何问题。 所以我转向SO,我该如何解决这个问题?

提前致谢!

2 个答案:

答案 0 :(得分:3)

要克服消失的网络参考,您可以尝试手动将客户端代理代码添加到您的解决方案中:

  1. 打开脚本组件'选择所有文件'解决方案资源管理器中的图标
  2. 深入查看webreference,找到reference.cs文件
  3. 将此文件的内容复制到新的类文件中。
  4. 删除网络参考
  5. 重新编译代码,保存并退出
  6. 打开项目以查看是否已保存参考。

答案 1 :(得分:0)

最快捷最简单的方法是搜索应在C:\ Users \ Your User Directory \ AppData \ Local \ Temp下弹出的VSTA文件夹。

右键单击VSTA文件夹,然后转到“属性”。 授予帐户持有者完全访问权限。 保存并关闭Visual Studio 重新开放,应该没问题。