我在我的asp.net项目中创建了一个SSISpackage。为了调用ssis包,我编写了以下代码。
将应用程序调暗为新的Application()
dim package as Package = app.LoadPackage(“C:\ Projects \ MyPackage.dtsx”)
DTS结果为DTSExeResult = package.Execute()
回复于(result.Tostring())
但它显示了一些错误。我认为缺少一些名称空间。必须导入所有名称空间? 请帮忙
答案 0 :(得分:3)
我认为你所追求的命名空间是:
Microsoft.SqlServer.Dts.Runtime
但是,此命名空间位于默认情况下通常不会引用的程序集中,因此您必须手动添加对以下内容的引用:
Microsoft.SqlServer.ManagedDTS.dll
汇编,如果你还没有引用它。
另请注意,由于您尝试从ASP.NET上下文中执行包,因此可能会遇到安全/权限问题。有关这方面的更多详细信息,请参阅以下链接:
Microsoft.SqlServer.Dts.Runtime & ASP.NET Identity Problem
Calling SSIS package from web service - Security issue
Calling SSIS packages from ASP.NET - Packages with file system tasks end abruptly
另请参阅以编程方式运行SSIS包中的这些常规链接:
Loading and Running a Local Package Programmatically
Running SSIS package programmatically
最后一个链接包含一个非常重要的警告,试图从ASP.NET上下文中专门执行SSIS包:
ASP.NET特定:模仿 上下文没有传递给 附加线程SSIS包 创建,所以数据源 连接不会被冒充。 此外,ASP.NET可以配置为 如果它回收工人进程 消耗太多内存来改善 ASP.NET应用程序的可用性。 由于SSIS可能会消耗很多 内存,如果你有很多数据,它 可以触发这种回收并降低 申请的可靠性。
答案 1 :(得分:1)
Microsoft.SqlServer.Dts.Runtime