我创建了一个应用程序并使用表达式动态运行SSIS包。我正在使用SQLserver 2008 R2
但是在运行代码时,应用程序崩溃了。我看到了事件查看器,并在事件查看器中发现了以下异常
错误模块名称:DTS.dll,版本:2009.100.1600.1,异常代码:0xc0000005
错误模块路径:C:\ Program Files \ Microsoft SQL Server \ 100 \ DTS \ Binn \ DTS.dll。
当我运行我的c#应用程序来执行pacakge时,请参阅下面的代码:
public DTSExecResult ExecutePackageFromFile(string packageName, IDictionary<string, object> variablesMap, out Package pkg)
{
Application app = new Application();
pkg= app.LoadPackage(packageName, null,true);
//set package varaibles
Microsoft.SqlServer.Dts.Runtime.Variables vars = pkg.Variables;
IEnumerator<KeyValuePair<string, object>> varEnumarators = variablesMap.GetEnumerator();
while (varEnumarators.MoveNext())
{
KeyValuePair<string, object> item = varEnumarators.Current;
{
vars[item.Key].Value = item.Value;
}
//This line crashes the application
return pkg.Execute();
}
注意:如果我不使用任何sql命令作为表达式,则会执行包。当我在pacakge中使用表达式时,应用程序会崩溃,并给出上面的错误模块错误。
请帮帮我。