ssis包执行直接成功,通过c#代码执行失败
ssis package execution succeeds directly but fails via c# code
我有以下代码似乎可以正常执行来自 c# 的 SSIS 包,但每次变量 "Resp" returns 都会失败,即使当我直接执行它时包通过SSIS.
同样,该软件包包含一个写入 SQL 服务器 table 的脚本组件。当包直接在 SSIS 中执行时,一切正常,但当通过 C# 使用下面的代码调用相同的包时,没有任何反应。我不知道我做错了什么。求助!
string packageLocation = @"c:\packageLocationPath";
Package pkg;
Application app;
app = new Application();
pkg = app.LoadPackage(packageLocation, null);
var Resp = pkg.Execute();
检测错误
首先你必须阅读包引发的错误。有两个选项可以检测这些错误:
(1) 循环错误
您可以通过访问错误 属性 来遍历包错误。例如:
if(p.Errors.Count > 0){
foreach(DtsError err in p.Errors){
Messagebox.Show(err.Description);
}
}
更多信息请访问:
(2) 从包中启用日志记录
您可以通过启用日志记录选项从包中捕获所有错误、警告和信息:
可能的失败原因
- 如果您使用 windows 身份验证连接到 SQL,请确保用于通过 C# 执行应用程序的用户帐户已获得建立连接的授权。
- 如果程序包正在访问文件系统,请确保用户具有访问这些文件所需的权限
我有以下代码似乎可以正常执行来自 c# 的 SSIS 包,但每次变量 "Resp" returns 都会失败,即使当我直接执行它时包通过SSIS.
同样,该软件包包含一个写入 SQL 服务器 table 的脚本组件。当包直接在 SSIS 中执行时,一切正常,但当通过 C# 使用下面的代码调用相同的包时,没有任何反应。我不知道我做错了什么。求助!
string packageLocation = @"c:\packageLocationPath";
Package pkg;
Application app;
app = new Application();
pkg = app.LoadPackage(packageLocation, null);
var Resp = pkg.Execute();
检测错误
首先你必须阅读包引发的错误。有两个选项可以检测这些错误:
(1) 循环错误
您可以通过访问错误 属性 来遍历包错误。例如:
if(p.Errors.Count > 0){
foreach(DtsError err in p.Errors){
Messagebox.Show(err.Description);
}
}
更多信息请访问:
(2) 从包中启用日志记录
您可以通过启用日志记录选项从包中捕获所有错误、警告和信息:
可能的失败原因
- 如果您使用 windows 身份验证连接到 SQL,请确保用于通过 C# 执行应用程序的用户帐户已获得建立连接的授权。
- 如果程序包正在访问文件系统,请确保用户具有访问这些文件所需的权限