我有一个控制台应用程序正在调用SSIS Package.Below是正常工作的代码。
public static void ExecuteSSIS_Staging()
{
DataAccessLayer objDAL = new DataAccessLayer();
LogManager_SSIS objlogM = new LogManager_SSIS();
String strDestinationFilePath = System.Configuration.ConfigurationManager.AppSettings.Get("FileDownloaded");
try
{
Package pkg;
Application app;
DTSExecResult pkgResults;
MyEventListener eventListener = new MyEventListener();
string staging_pkgLocation = System.Configuration.ConfigurationManager.AppSettings.Get("SSIS_Staging_Filepath").ToString();
app = new Application();
pkg = app.LoadPackage(staging_pkgLocation, eventListener);
pkgResults = pkg.Execute(null, null, eventListener, null, null);
if (pkgResults == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success)
{
Console.WriteLine("Success");
}
else if (pkgResults == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure)
{
string err = "";
foreach (Microsoft.SqlServer.Dts.Runtime.DtsError local_DtsError in pkg.Errors)
{
string error = local_DtsError.Description.ToString();
err = err + error;
}
throw new Exception("Error Occurred while executing the SSIS Staging package:" + err);
}
}
catch (Exception ex)
{
throw new Exception("SSIS Package Execution Failed:" + ex.Message.ToString());
}
}
现在我可以在Foreach循环中调用此包。
static void Main(string[] args)
{
try
{
foreach (DateTime FileDate in SortedDates)
{
ExecuteSSIS_Staging(FileDate);
}
}
Catch(Exception ex)
{
}
}
我收到很多问题,比如
Could not load file or assembly 'Microsoft.SqlServer.ManagedDTS
和其他一些DLL引用错误。
任何人都可以建议我,我如何调用SSIS Package Inside Foreach循环。最重要的是,在我的本地机器上,它正在工作。但是当我在服务器中部署它时,它不是。
答案 0 :(得分:0)
我已经添加了实际问题
Microsoft.SQLServer.ManagedDTS.dll version 9.0
在一台机器上。当我试图在其他机器上打开它时,一些DLL如何被引用到
Microsoft.SQLServer.ManagedDTS.dll version 10.0 version.
我再次改变它&执行。现在工作正常。