为了账号安全,请及时绑定邮箱和手机立即绑定

使用 C# 执行 SSIS 包时出错

使用 C# 执行 SSIS 包时出错

C#
森栏 2021-10-24 19:26:25
我尝试SSIS使用C#.在 Visual Studio 2015 中直接启动时,此包运行良好。SSIS 包的名称是“Lesson 1.dtsx”。我尝试使用C#以下代码开始此过程:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace run_ssis_project{    public class ExecuteSSIS    {        public void exePackage()        {            String pkgLocation = @"C:\SSIS Tutorial\Lesson 1.dtsx";            Microsoft.SqlServer.Dts.Runtime.Package ssisPackage;            Microsoft.SqlServer.Dts.Runtime.Application app;            Microsoft.SqlServer.Dts.Runtime.DTSExecResult result;            app = new Microsoft.SqlServer.Dts.Runtime.Application();            ssisPackage = app.LoadPackage(pkgLocation,null);            result = ssisPackage.Execute();            if(result == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success)            {                Console.WriteLine("Success");            }            else            {                Console.WriteLine("Failure");            }        }    }}执行此代码时,出现异常:“Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException”,由于错误 0xC0011008“从 XML 加载错误。没有更详细的错误信息,导致程序包加载失败。异常发生在: ssisPackage = app.LoadPackage(pkgLocation,null);我在这个项目中添加了两个 DLL 作为引用:Microsoft.SqlServer.DTSRuntimeWrap.dllMicrosoft.SqlServer.ManagedDTS.dll有人能帮助我吗?
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

除了我收到关于混合模式的错误之外,我没有任何问题,因为它针对 4.0 版的框架运行 2.0 版。因此,如果这不起作用,您的 ssis 包中可能有错误。否则尝试制作一个新的 ssis-packages,它基本上什么都不做,看看你是否成功。


这是我的代码的样子:


using Microsoft.SqlServer.Dts.Runtime;



namespace ConsoleApplication8

{

    class Program

    {

        static void Main(string[] args)

        {


            string pkgLocation;

            Package pkg;

            Application app;

            DTSExecResult pkgResults;

            MyEventListener eventListener = new MyEventListener();


            pkgLocation =

              @"C:\Users\thoje\Documents\Visual Studio 2015\Projects\Integration Services Project8\Integration Services Project8\Package37.dtsx";

            app = new Application();

            pkg = app.LoadPackage(pkgLocation, eventListener);

            pkgResults = pkg.Execute(null,null,eventListener,null,null);


            Console.WriteLine(pkgResults.ToString());

            Console.ReadKey();

        }

    }



    class MyEventListener : DefaultEvents

    {

        public override bool OnError(DtsObject source, int errorCode, string subComponent,

               string description, string helpFile, int helpContext, string idofInterfaceWithError)

        {

            // Output Error Message

            Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);

            return false;

        }

    }

}

这就是我需要在 app.Config 中纠正的内容:


<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <startup useLegacyV2RuntimeActivationPolicy="true"> 

        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />

    </startup>

</configuration>


查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 299 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信