SSIS 包无法 运行 使用脚本任务
SSIS Package Fails To Run With Script Task
我有一个控制台应用程序试图 运行 一个 SSIS 包(在包部署模式下)。控制台应用程序和 SSIS 包都位于我的 C: 驱动器上。只要调用的包不包含脚本任务,代码就可以工作。当调用的包包含脚本任务时,出现此错误:
Package Execution results: The task has failed to load. The contact information for this task is "".
Package Execution results: There
were errors during task validation.
Package Execution results: The
package cannot execute because it contains tasks that failed to load.
我已经尝试 运行从 SSDT 调用包并 运行s 成功。但是当下面代码中的 运行 时,它失败了。根据类似帖子的回答,我尝试更改被调用包的 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;
}
}
}
这是一个已知的限制。任何带有脚本任务的包都将无法 运行 在“正确的”集成服务安装之外。据我所知,这是一个许可问题。可能还有其他限制。
我有一个控制台应用程序试图 运行 一个 SSIS 包(在包部署模式下)。控制台应用程序和 SSIS 包都位于我的 C: 驱动器上。只要调用的包不包含脚本任务,代码就可以工作。当调用的包包含脚本任务时,出现此错误:
Package Execution results: The task has failed to load. The contact information for this task is "".
Package Execution results: There were errors during task validation.
Package Execution results: The package cannot execute because it contains tasks that failed to load.
我已经尝试 运行从 SSDT 调用包并 运行s 成功。但是当下面代码中的 运行 时,它失败了。根据类似帖子的回答,我尝试更改被调用包的 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;
}
}
}
这是一个已知的限制。任何带有脚本任务的包都将无法 运行 在“正确的”集成服务安装之外。据我所知,这是一个许可问题。可能还有其他限制。