9

我有 3 个带有脚本任务的 SSIS 包,它们都做非常相似的事情——查询 SQL Server 数据库,遍历结果,然后为每一行调用一个 SOAP Web 服务。这些包在本地运行良好,在开发和 QA 服务器上运行良好。

在生产服务器上,1 运行正常,2 失败并出现不祥的“无法加载脚本以执行”错误。这些是 Server 2008 SP2 上的 SQL 2008 R2 环境。无论运行它们的用户如何,都会发生错误。

到目前为止,我已经尝试了以下方法:

  • 在我的开发环境中运行包,数据库连接指向生产环境(运行良好)
  • 在项目设置中将 Run64BitRuntime 设置为 false。没区别。
  • 删除包并重新部署它
  • 按照此处的建议,给定对 /Windows/Temp 的显式写访问权限。这最初是在使用代理用户运行时发生的,所以我们尝试了这个修复。但是当我使用我的管理员帐户运行时,我得到了同样的错误。

我无法在生产服务器上重新编译脚本,因为开发堆栈不存在并且它是生产服务器。我也无法按照此处的建议在此服务器上安装或更新 BIDS 。

根据某些人的发现,似乎可能需要在目标环境中重新编译脚本,但我没有这个选项。

4

6 回答 6

11

因此,不幸的是,答案是重建脚本任务。看来这些东西可能会被破坏。我实际上没有更改任何一行代码,只是重新创建了任务并从损坏的版本中复制了代码。

于 2013-03-01T22:14:02.273 回答
11

也可能是版本不匹配。如果 SSIS 项目设置为面向 SQL Server 2012,但部署到 SQL 2016 实例,则会发生此错误。在项目属性中更改目标版本并重新部署。

于 2017-10-25T09:04:28.687 回答
7

Microsoft 在 SSIS2008R2 和 SSIS2012 之间对 ScriptTasks 进行了重大更改。值得庆幸的是,修复非常简单。只需替换这一行:

? 1 [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")] 用这个:

? 1 [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute] 一切都应该按预期为您工作。

于 2015-06-08T06:04:22.587 回答
1

我有类似的问题,但在我的情况下,目标机器在 GAC 中缺少一个 dll,用于使用 Microsoft Webservices3 进行的一些 SOAP Web 服务调用。一旦我从 Microsoft 下载安装并安装在目标机器上,问题就解决了。

于 2018-01-15T15:43:25.273 回答
0

在 Visual Studio 2019 上,我必须重建整个包,而不仅仅是脚本任务。我通过将所有包任务、变量和参数复制并粘贴到一个新的中来做到这一点。

于 2019-10-29T14:57:40.427 回答
0

我发现如果您的 C# 脚本是针对旧版本的 SQL 构建但包含新的 C# 语法(例如三元运算符“?:??”),也会弹出错误。或字符串插值 $"{varaible}"。

于 2021-08-25T13:50:58.727 回答