首页 > 解决方案 > 通过 .Net 运行平面文件 SSIS 包会抛出“在 sql server 之外运行 ssis 包....安装集成服务”

问题描述

我正在尝试使用 Microsoft.SqlServer.Dts.Runtime DLL 版本 14.0.0.0 通过.Net 代码运行平面文件 SSIS 包。

执行后我得到“要在 SQL Server Data Tools 之外运行 SSIS 包,您必须安装标准版的 Integration Services 或更高版本”

我安装了适用于 Visual Studio 2017 的 SSIS,以及 SQL Server 2017 都安装了 SSIS 扩展。

尝试直接通过 DTExe 运行时,有许多与此错误相关的问题;但还没有发现任何有关对 Dts.Runtime DLL 进行故障排除的问题。

我假设 DLL 调用 DTExe,但我不知道它会调用哪个 DTExe。使用“错误的”DTExe 可以解决有关此错误的许多其他问题。

标签: sql-serverssissql-server-data-tools

解决方案


无论您是使用托管对象模型还是使用工具,两者都将检查机器上是否安装了 SSIS 服务。运行 SSIS 包的许可要求是运行包的服务器是许可的 SQL Server 实例。因此,您编写的应用程序有望在已经拥有 SQL Server 服务器标准许可证或更高版本的机器上运行。

对于开发,我上次检查的费用约为 50 美元。对于生产,我们谈论的是数万到数十万美元。

为了完整起见,SQL Server 2005 和 2008 SSIS 包将在安装了数据工具(当时称为商业智能设计工作室或 BIDS)的计算机上运行,​​因为获取安装介质的唯一方法是拥有 SQL Server 的 ISO 映像, 开发者版或以上。

使用 2012,您现在可以在没有 SQL Server 产品的情况下下载 SQL Server Data Tools、SSDT,但您无法在 Visual Studio 调试器之外运行包 - 这很遗憾,因为调试器会严重影响包的吞吐量.

如果您检查许可要求 - 将 SSIS 扩展到不同的机器不包含在企业版许可中。

SQL Server 不需要安装 SSDT 即可运行 SSIS 包。安装工具以运行和与之交互的选项(dtutil、dtexec、ssisdeploymentwizard).. 可能存在或不存在取决于版本。但那是运行包。开发是 SSDT 发挥作用的地方。SSDT 在开发环境中设计和运行包(Visual Studio 调试器)。该许可检查将阻止其他任何事情。


推荐阅读