首页 > 解决方案 > LoadPackage 从 .NET 失败,找不到集成服务类

问题描述

我知道这已经被问过很多次了,但我还没有找到解决我的具体问题的方法。

我的设置是新安装的 Windows 10 Enterprise 完全更新了 SQL Server 2017,包括集成服务和分析服务。我也安装了最新的 SSDT。我还从 SQL Server 2017 安装中安装了客户端工具 SDK。还安装了 Visual Studio 2017。

我的 ASP.NET 应用程序“应该”运行 SSIS 包,但在使用 LoadPackage(packageName, null) 加载包时失败。错误是“找不到集成服务类等......”。重复一遍 - 已安装集成服务 2017 和客户端工具 SDK。我的应用程序一直在使用以前的 SQL Server 版本 - 最新版本是 SQL Server 2014,但我已经将我的应用程序从 SQL Server 2008 升级到 2008R2 到 2012 到 2014 并且我以前从未遇到过问题。

与我能找到的其他帖子不同的是,我没有将 SSIS 包部署到单独的 Web 服务器(嗯,我这样做了,但这也不起作用,但第一步是在我的开发机器上解决它)。我在 VS2017 中创建了一个空的 SSIS 包,以确保它不是导致错误的包的内容。SSIS包是在同一台机器上开发的,我可以用32位和64位版本的DTExec.exe成功运行这个包。

我已将 ASP.NET 应用程序中的所有引用更新为 ManagedDTS.dll 14.0 版。作为 SQL Server 2017 更新的一部分,我已将我的 ASP.NET 应用程序更新为 .NET 4.7。

因为我可以很容易地搜索并找到许多关于类似问题的帖子,并提供大量解决方案建议,我希望有人会用解决方案建议而不是指向我的问题的“副本”的链接来回复这个问题,因为我可能已经阅读过这些并尝试过所有建议的解决方案。

提前致谢...

更新:首先,创建一个新项目并加载一个包是可行的——所以我认为从 .NET 3.5 更新到 4.7 后我可能会遇到代码问题。我开始注释代码,发现如果我在调用 LoadPackage 之前不进行模拟,它实际上可以工作。根据我最近在 Microsoft 的 7 月更新中遇到的其他一些问题,我删除了其中一个更新,现在我得到了一个不同的错误 - 启用了模拟代码。当前的错误是我见过很多其他人的错误,所以我会深入研究它 - 它是:“由于错误 0x80131534 \"(null)\",包无法加载。当 CPackage::LoadFromXML 失败时会发生这种情况.\r\n"。我真的不明白这是否应该由版本之间的不匹配引起,但我会在发现更多信息时进行更新。

标签: c#asp.netsql-serverssis

解决方案


作为一种快速的解决方法,您可以设置调用 ssis 包的 sql 作业并使用sp_start_jobasp.net 应用程序中的存储过程运行作业。

如果需要监控正在运行的作业,可以使用以下命令检查状态:

select * FROM msdb.dbo.sysjobactivity 

推荐阅读