[英]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.