在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
}
}
答案 0 :(得分:0)
在上一个脚本任务中,有一个与控制台相关的代码。这导致程序包挂起,并且在调试时不会显示为错误/警告。