程序包挂起脚本任务C#

时间:2017-06-08 11:16:31

标签: c# ssis

在For循环容器中,我下载了一个带有脚本任务的文件,然后是另一个脚本任务,我正在检查它的大小。在Dev服务器上,当我通过SSDT执行它时,它会成功执行。当我将它运行到与作业或adhoc执行相同的服务器时,它会挂起(在下载第一个文件之后)。这两个脚本任务都试过& catch和作业通过SQL Server代理执行。日志显示PreLecute for ForLoop&对于DownloadFile脚本任务,其余的是Pre / post验证。下面是脚本。有什么想法吗?

#region Namespaces
using Microsoft.SqlServer.Dts.Runtime;
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
#endregion

namespace ST_7b3b944d502f476a871b7fa26cddac6e
{
    [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    {

        public void Main()
        {
            try{
            string file = Dts.Variables["User::v_Filename"].Value.ToString();
            string Path = Dts.Variables["$Project::p_path"].Value.ToString();

            FileInfo filesize = new FileInfo(file); 
            long size = filesize.Length; 

                if (size > 100) 
                    { Dts.Variables["User::EmptyFile"].Value = false; 
                    }
                     else 
                    {
                      Dts.Variables["User::EmptyFile"].Value = true; 
                    } 
                        }
                catch (Exception ex)
                {
                    throw ex;
                }
        }

        #region ScriptResults declaration
        enum ScriptResults
        {
            Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
            Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
        };
        #endregion

    }
}

1 个答案:

答案 0 :(得分:0)

在上一个脚本任务中,有一个与控制台相关的代码。这导致程序包挂起,并且在调试时不会显示为错误/警告。