【问题标题】:SSIS, fire events and the execution reportsSSIS、火灾事件和执行报告
【发布时间】:2019-10-01 07:06:07
【问题描述】:

我有一个 SSIS 包,其中包含一个触发各种信息和警告消息的脚本任务,例如:

Dts.Events.FireWarning(1, taskName, "Common Version API URL not specified", null, 0);

这在我在 SQL Server 2017 中运行的笔记本电脑上运行良好。该消息会根据需要写入执行报告:

但是,当我在使用 SQL Server 2016 的测试环境中部署和运行包时,执行报告没有显示我的任何消息。这可能是由于我不知道的某些设置,还是 SQL Server 2016 中缺少的功能?

【问题讨论】:

  • 从服务器获取包到一个新项目——检查脚本任务——它可能是空的。这通常是由于部署脚本时库中的不匹配造成的。查看您要部署到的版本的 \DTS\Binn\ISDeploymentWizard.exe。 (即对于 sql 2016,它是 \130\DTS\Binn\ISDeploymentWizard.exe。如果这是问题但您无法使其正常工作,请告诉我,我会发布更详细的答案。
  • 感谢@Dave,但在我的情况下,从测试环境导出的包中脚本的 Main-method 看起来与我的开发环境中的完全相同(此外,脚本还包含其他代码到 FireWarning 声明,效果很好)。如果我比较这两个 .dtsx 文件,会有很多差异,但整个包中的 C# 代码似乎没有改变。 (但是,我确实遇到了一个问题,迫使我直接在 .dtsx 文件中编辑 C# 代码,但我认为这是一个完全不同的故事。)

标签: sql-server ssis etl sql-server-2017 sql-agent-job


【解决方案1】:

我的问题实际上没有答案,但是,我的问题已经解决了。 Dts.Events.FireWarning 等现在按预期工作,即我的消息包含在我们的测试(和生产)环境的执行报告中。由于我没有更改任何代码,我只能假设这些环境中的某些内容发生了变化。我问过是否有任何更新可以解释这一点,但我没有收到任何令人满意的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多