【问题标题】:Script task generates Index Out of Bounds Exception脚本任务生成 Index Out of Bounds 异常
【发布时间】:2016-01-13 23:19:04
【问题描述】:

我有多个 SSIS 包,然后将它们包含在一个主包中。当我运行这项工作时。我通过手动运行检查了各个包,并且全部变为绿色 - 表示成功执行。但是,从工作中,得到以下错误:

以用户身份执行:AA\xx_dev。 Microsoft (R) SQL Server Execute Package Utility Version 10.50.4000.0 for 64-bit 版权所有 (C) Microsoft Corporation 2010。保留所有权利。开始时间:下午 7:40:34 错误:2016-01-13 19:40:37.04 代码:0x00000001 源:源文件 Appearance_Validation_Transfer 描述:System.Reflection.TargetInvocationException:调用目标已引发异常。 ---> System.IndexOutOfRangeException:索引超出了数组的范围。在ST_a3ed049745fb4a87b5abac55eb724bf1.csproj.ScriptMain.Get_Entity_Name(字符串文件名)在ST_a3ed049745fb4a87b5abac55eb724bf1.csproj.ScriptMain.Validate_File_Name(字符串文件名,字符串FileExt)在ST_a3ed049745fb4a87b5abac55eb724bf1.csproj.ScriptMain.Validate_Files(字符串文件名)在ST_a3ed049745fb4a87b5abac55eb724bf1.csproj.ScriptMain.Main() - -- 内部异常堆栈跟踪结束 --- 在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object[] 参数,CultureInfo 文化)在 System.RuntimeType.InvokeMember(字符串名称, BindingFlags bindingFlags, Binder binder, Obje Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 处的 ct 目标、Object[] providedArgs、ParameterModifier[] 修饰符、CultureInfo 文化、String[] namedParams) 结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:晚上 7:40:34 结束时间:晚上 7:40:37 经过时间:3.01 秒。包执行失败。步骤失败。

我怎么知道哪一步失败了?主包中包含大约 10 个包。这个错误是什么意思?我该如何解决这个问题?

【问题讨论】:

  • 您是否在脚本组件中启用了任何断点,无论是主包还是子包。如果是,请删除断点,然后运行作业。
  • 1) 在名为“Source File Appearance_Validation_Transfer Description”的包中找到脚本任务它正在执行某事,因此它正在生成IndexOutOfBoundsException,因为我们无权访问您的代码,包和您的环境的任何参数或配置,甚至不可能猜测它为什么会引发异常。
  • 2) 修补您的服务器。 10.50.4000 是 2012 年发布的 SP2。SP3 于 2014 年发布。现在是 2016 年。您严重超出了补丁周期。
  • 3) 您在脚本任务(回到#1)中有一个名为Get_Entity_Name 的方法,它接受一个文件名作为参数。使用我的预言技能,我怀疑有人正在使用字符串操作来确定文件名、扩展名、父路径等,并且对提供的运行时值做错了。 UNC 是一个很好的例子,说明人们在哪里犯了这个错误。相对路径也是一个很好的例子。如果您发现这个假设是正确的,请使用 System.IO.Path 中提供的库方法

标签: sql-server ssis


【解决方案1】:

在整个解决方案中搜索此 (ST_a3ed049745fb4a87b5abac55eb724bf1) 后;我知道了,哪个特定的脚本任务显示错误。在我的调试错误得到修复之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2020-09-24
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多