从每个循环的c#控制台应用程序调用SSIS包

时间:2014-12-31 16:16:07

标签: c#-4.0 ssis

我有一个控制台应用程序正在调用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循环。最重要的是,在我的本地机器上,它正在工作。但是当我在服务器中部署它时,它不是。

1 个答案:

答案 0 :(得分:0)

我已经添加了实际问题

 Microsoft.SQLServer.ManagedDTS.dll version 9.0 

在一台机器上。当我试图在其他机器上打开它时,一些DLL如何被引用到

      Microsoft.SQLServer.ManagedDTS.dll version 10.0 version. 

我再次改变它&执行。现在工作正常。