SSIS 2012:包在SQL代理中运行,而不是在BIDS或cmd-line

时间:2017-01-17 07:25:21

标签: sql-server ssis ssis-2012

我有一个开发服务器,它将从SQL Agent运行包(根据计划,并通过Job Activity Monitor手动),但不能通过BIDS或命令行上的两种不同方式运行它。

我们在BIDS中遇到的错误是:

  

0xC0010026在ACME引发错误:任务加载失败。该   此任务的联系信息是""。

我还有一个生产服务器,可以在BIDS和SQL Agent / Job Activity Monitor中运行相同的软件包集。如果我们需要调试这些包,我们必须在生产中执行:-o

在一个阶段,调试(即通过BIDS运行)正在开发服务器上为另一个用户工作。几个星期后#39;缺席,他们登录到服务器,发现它没有工作。它也不适合我。

详细

我们希望开发服务器上的调试功能!

两台服务器应该完全相同。他们运行Windows 2012,SQL-Server 2012,SSIS 2012,SSMS 2012,Visual Studio 2012(以及......用于Visual Studio 2012的SQL Server数据工具和Visual Studio 2010 Shell)。

其中一些信息含糊不清,所以要清楚,当我说"在BIDS"中运行时,我所做的就是

  1. 双击标有 SQL Server数据工具的快捷方式,打开Visual Studio 2010 Shell,然后将Portal Data Retrieval.sln文件从Windows资源管理器拖入其中。然后我选择里面的几个包中的任何一个,并右键单击>执行或加载它并调试>运行调试(F5),或运行不调试。
  2. 双击标有 Visual Studio 2012的SQL Server数据工具的快捷方式,方法类似,结果类似。
  3. 完整错误是

      

    SSIS包" D:\ Acme-Dev \ KiwiNick \ Portal Data   检索\ G9 \ G9_CostsFixedForecast_ACMEPortal.dtsx"开始。错误:   ACME上升0xC0010026错误:任务加载失败。该   该任务的联系信息是""。错误:ACME的0xC0024107   提升错误:任务验证期间出现错误。错误:   在G9_CostsFixedForecast_ACMEPortal的0xC0010025:包不能   执行,因为它包含无法加载的任务。 SSIS包   " D:\ Acme-Dev \ KiwiNick \门户数据   检索\ G9 \ G9_CostsFixedForecast_ACMEPortal.dtsx"完成:失败。   该程序' [8836] DtsDebugHost.exe:DTS'已退出代码0   (为0x0)。

    这是我尝试在BIDS内运行的时候。

    其他用户试图重新GAC某些DLL,但我没有更详细的信息。

    我们最近从SQL-2005迁移了这些包。有一些问题,但它们都已解决,并且包能够以正确的结果运行(我们可以在生产时进行调试)。

    研究

    我尝试过类似于

    的互联网搜索
      

    SSIS包在SQL代理中运行,但不是在BIDS"

      

    SSIS错误由于错误,无法从XML为任务创建任务   0x800700C1"%1不是有效的Win32应用程序。"

      

    SSIS调试错误:0xC0010026任务加载失败。该   此任务的联系信息

    大多数搜索结果令人沮丧,例如很多用户抱怨中运行在SQL代理中运行 。要么 他们谈到自定义C#任务在转移到生产时失败。或32/64位设置。或者可以手动运行的自定义任务。很多论坛主题都没有让参与者找到原因。

    在研究期间,我发现了运行包的各种方法:

    • 在BIDS内(有或没有调试) - 上述错误
    • [命令行不正确]在命令行上显示dtexec.exe /f G9_CostsFixedForecast_ACMEPortal.dtsx - 提供了大量错误
    • [已更正]在命令行中显示为dtexec.exe /Project bin\Development\G9.ispac /Package G9_CostsFixedForecast_ACMEPortal.dtsx
    • [可能不正确]在命令行上运行dtexecui.exe,然后在生成的GUI中运行包 - 也会产生很多错误。
    • 在SQL Agent中根据计划 - 没有看到错误,数据库中的数据正确
    • 在作业活动监视器中(右键单击>从步骤执行) - 未见错误,数据库中的数据正确。

    我怀疑开发服务器出了问题,但我不确定从服务器发布什么信息 - 我很欣赏有关我应该提供的信息的建议。

    要求提供其他信息 - TAKE 2

    用户billinkc指出(当在项目部署模型中并且实际上正在使用项目工件@[$Project::ACMEADONET]时),需要一个不同的命令行。

    D:\Acme-Dev\KiwiNick\Portal Data Retrieval\G9>dtexec.exe /Project bin\Development\G9.ispac /Package G9_CostsFixedForecast_ACMEPortal.dtsx
    
    Microsoft (R) SQL Server Execute Package Utility
    Version 11.0.6020.0 for 64-bit
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Started:  10:54:44 AM
    Error: 2017-01-19 10:54:52.40
       Code: 0xC0010026
       Source: ACME Raise Error 
       Description: The task has failed to load. The contact information for this task is "".
    End Error
    Error: 2017-01-19 10:54:52.40
       Code: 0xC0024107
       Source: ACME Raise Error 
       Description: There were errors during task validation.
    End Error
    Error: 2017-01-19 10:54:52.40
       Code: 0xC0010025
       Source: G9_CostsFixedForecast_ACMEPortal 
       Description: The package cannot execute because it contains tasks that failed to load.
    End Error
    DTExec: The package execution returned DTSER_FAILURE (1).
    Started:  10:54:44 AM
    Finished: 10:54:52 AM
    Elapsed:  7.469 seconds
    

    正如你所看到的,它(现在)与BIDS'非常相似。输出窗口。自定义DLL,提供" ACME提升错误"逻辑(ABC_CustomScriptTasks.dll)也已复制到生产服务器,并且在两个地方都是GAC(并在两个地方都进行了验证)。此特定任务在其属性窗口中有延迟验证= False

    更新2:重新启动了开发服务器。没有变化。

    更新3:在开发服务器上发现了各种ABC_CustomScriptTasks.dll副本的差异(文件大小是一个死的赠品)。全部理顺,SQL Server集成服务(在计算机管理>服务中)已重新启动。没变。生产服务器中ABC_CustomScriptTasks.dll的所有副本都是相同的(由CRC32检查来自拉链它们 - 是的有点粗糙)。没有区别。

    更新4:已决定放弃此服务器作为开发服务器(将继续作为部署点,因为它充当测试环境) 。将使用跳跃主机(其手指较少)。谢谢所有想到这个问题的人。

0 个答案:

没有答案