【问题标题】:SSIS Script Task Fails when run from SQL Agent Works fine if run individually从 SQL 代理运行时 SSIS 脚本任务失败 如果单独运行,则工作正常
【发布时间】:2017-11-24 04:52:52
【问题描述】:

我有一个由 sql server 代理运行的计划项目。它包含多个包。其中一个包包含调用我部署在 azure 上的 api 的脚本任务。整个过程在虚拟机上运行。

每当该进程按照计划从代理运行时,它都会引发错误(目标调用方法已引发异常),如屏幕截图所示。但是,如果我在 VS 中手动运行该过程,它工作正常(另外,如果我从 IS 目录运行特定包,它工作正常)。我试图将日志记录在我的 api 的最后一条语句上。它工作得很好。它执行到最后一条语句没有任何问题。

我浏览了许多类似于SSIS Script Task Fails when run from SQL Agent 的链接,但没有找到解决方案。

谁能帮帮我?提前致谢。

【问题讨论】:

  • 没有截图。此外......请花时间将错误文本放入您的问题中,以便可以搜索。除此之外,请查看 SSIS 日志以获取更多详细信息
  • @Nick.McDermaid 添加了截图和错误文本。
  • 暂时将 SQL 代理服务帐户更改为本地管理员,看看是否能解决问题。如果它确实解决了问题,那么您需要缩小范围并找出安全问题所在。例如,脚本任务需要对C:\WINDOWS\TEMP 的写入权限才能运行
  • @Nick.McDermaid 我试图通过将代理的帐户更改为本地管理员来做到这一点,但没有奏效。显示相同的错误消息。如果您有任何其他建议,请告诉我。
  • 在这个阶段查看代码会有所帮助。您是指脚本任务中的驱动器吗?它们可能不存在于 SQL Server 上 - 请记住,当它在作业中运行时,它位于 SQL Server 上。

标签: .net ssis script-task


【解决方案1】:

在花了这么多时间来理解这个问题之后,我已经找到了解决我自己问题的方法。 在 SSIS 中使用脚本任务有一些限制。我从中调用的 API 需要太多时间来推动脚本任务以结束异步线程执行。之后它返回失败状态。 (此问题在调试模式下未发生。) 然后我尝试通过使用 HttpClientConnection 来使用同步方法,但它的主要限制是超时限制。我们可以为任何通话设置最多 5 分钟。

最后,我将该 API 拆分为多个任务,以消除解决我的问题的超时。谢谢。

【讨论】:

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