[英]SSIS Package Fails To Run With Script Task
我有一个控制台应用程序试图运行 SSIS package(在 Package 部署模式下)。 控制台应用程序和 SSIS package 都位于我的 C: 驱动器上。 只要调用的 package 不包含脚本任务,代码就可以工作。 当被调用的 package 包含一个脚本任务时,我得到这个错误:
Package 执行结果:任务加载失败。 此任务的联系信息是“”。
Package 执行结果:任务验证时出错。
Package 执行结果: package 无法执行,因为它包含加载失败的任务。
我已经尝试从 SSDT 运行名为 package 并且它运行成功。 但是当从下面的代码运行时,它失败了。 根据类似帖子的回答,我尝试更改调用的 package 的 TargetServerVersion 属性。但仍然出现相同的错误。 控制台应用程序和调用的脚本任务都使用 .NET Framework 4.7.2 作为目标框架。
知道什么可能是错的吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SqlServer.Dts.Runtime;
namespace PackageTester
{
class Program
{
static void Main(string[] args)
{
string SSISPackagePath = @"C:\-------\console_app_test_2.dtsx";
string datafilePath = @"C:\-------\datafiles\my_data_file.csv";
string results = FireSSIS(SSISPackagePath, datafilePath);
Console.WriteLine(results);
Console.ReadLine();
}
public static string FireSSIS(string packagePath, string FilePath)
{
string result = string.Empty;
try
{
Application app = new Application();
Package package = null;
package = app.LoadPackage(packagePath, null);
Variables myVars = package.Variables;
myVars["SourceFilePath"].Value = FilePath;
DTSExecResult results = package.Execute(null, myVars, null, null, null);
if (results == DTSExecResult.Success)
{
result = "Success";
}
else
{
foreach (DtsError local_DtsError in package.Errors)
{
result += string.Concat($"Package Execution results: { local_DtsError.Description }\r\n");
}
}
}
catch (DtsException ex)
{
Console.WriteLine (ex.Message);
}
return result;
}
}
}
这是一个已知的限制。 任何带有脚本任务的 package 将无法在“正确”的集成服务安装之外运行。 据我所知,这是一个许可问题。 可能还有其他限制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.