【问题标题】:Why do I get an error when trying to add a web reference in a Script Task (SSIS)?尝试在脚本任务 (SSIS) 中添加 Web 引用时,为什么会出现错误?
【发布时间】:2015-03-05 16:20:13
【问题描述】:

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

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

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

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

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

但是,添加与服务引用相同的引用会很好,不会出错。问题是该网络服务的所有者明确表示我必须使用网络引用,因为它的方法是 VS2005 Web 服务方法。

我在本地计算机上尝试了同样的方法,它适用于网络参考!我能想到的唯一区别是我在本地机器上使用 Microsft Visual Studio 2012(数据工具),而服务器使用 Microsoft Visual Studio 2010(数据工具)。

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

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

我的尝试:

其他信息:

  • 服务器:Windows Server 2012

  • 服务器上的互联网访问

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

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

我已经在整个网络上搜索可以解决此问题的人,但没有找到任何解决方案。 所以我转向 SO,我该如何解决这个问题?

提前致谢!

【问题讨论】:

  • 您可以发布 TargetInvocation 错误的堆栈跟踪吗?您还可以尝试的一件事是在添加 webreference 时保存 reference.cs 并将其作为类添加到您的脚本组件中。看看在这种情况下类是否被保留。
  • 我已经用错误消息的图片更新了帖子。我正在寻找 reference.cs 文件,但在项目的任何地方都找不到它,甚至检查了解决方案文件夹。我在哪里可以找到它?谢谢。
  • 在脚本组件的项目资源管理器中,您还可以看到 ScriptMain.cs 有一个图标来显示所有文件。使用它,您可以深入到文件 reference.cs
  • 找到了,我真的让它工作了!我添加了 Web 引用,复制了 reference.cs,删除了 Web 引用,然后在我的脚本任务中添加了 reference.cs 作为一个类。必须取消注释 reference.cs 中的一行,然后我可以像以前一样使用该引用。 Ako,请务必添加您的评论作为答案,我会接受它。谢谢!
  • 没关系,我很高兴它对你有用。

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


【解决方案1】:

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

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

【讨论】:

  • 使用这个解决方案有什么缺点吗?感觉有点像“快速而肮脏”的修复。
  • 缺点是你放弃了灵活性,当它可能发生变化时你不能右键单击和更新网络参考。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2017-06-08
    相关资源
    最近更新 更多