SSIS调用外部包时出现Invalid Class String错误的问题咨询
问题描述
尝试从另一解决方案调用SSIS包,在选择外部包时收到Invalid Class String错误,当前使用的是Windows身份验证。
错误信息
Invalid class string ------------------------------ Program Location: at Microsoft.SqlServer.Dts.Runtime.Application.GetPackageInfos(String strFolder, String serverName, String serverUserName, String serverPassword) at Microsoft.SqlServer.Dts.Tasks.ExecutePackageTask.PackageBrowser.<>c__DisplayClass3_0.<EditValue>b__0(String path) at Microsoft.SqlServer.Dts.Tasks.ExecutePackageTask.PackageBrowser.EditValue(ITypeDescriptorContext context, IServiceProvider provider, Object value) =================================== Invalid class string ------------------------------ Program Location: at Microsoft.SqlServer.Dts.Runtime.Wrapper.ApplicationClass.GetPackageInfos(String bstrPackageFolder, String bstrServerName, String bstrServerUserName, String bstrServerPassword) at Microsoft.SqlServer.Dts.Runtime.Application.GetPackageInfos(String strFolder, String serverName, String serverUserName, String serverPassword)
错误截图

连接属性截图

可能的原因及解决方案
- SSIS运行时版本不匹配
运行环境安装的SQL Server SSIS版本与目标包开发使用的版本不一致时,COM组件注册信息不匹配会触发该错误,例如SSIS 2019开发的包在仅安装SSIS 2016组件的环境调用就会出现该问题。
解决方法:确认目标包的开发版本,在运行环境安装对应版本的SQL Server Integration Services服务及SDK组件。 - 32位/64位架构不匹配
解决方案运行的架构与SSIS组件注册的架构不一致时会触发该错误,尤其是Visual Studio调试时默认可能使用32位运行时,和系统注册的64位SSIS组件冲突。
解决方法:在项目属性调试页调整Run64BitRuntime配置项,与SSIS组件架构保持一致;若部署到IIS,调整应用程序池的32位启用设置匹配组件架构。 - SSIS COM组件注册损坏
SQL Server安装过程中SSIS相关COM组件未正确注册,或后续注册表对应项被修改,会导致运行时找不到对应的类标识。
解决方法:使用管理员权限打开命令提示符,执行对应版本SSIS核心DLL的regsvr32注册命令,或直接修复安装对应版本的SQL Server Integration Services。 - Windows身份验证权限不足
当前运行解决方案的Windows账号,没有目标SSIS实例对应的DCOM访问权限,无法正确调用SSIS运行时接口。
解决方法:打开组件服务(运行dcomcnfg启动),找到对应版本的Microsoft SQL Server Integration ServicesDCOM配置项,给当前运行账号添加本地激活、本地访问权限。 - SSIS程序集引用版本错误
解决方案中引用的Microsoft.SqlServer.ManagedDTS等SSIS相关程序集版本,与环境中安装的SSIS运行时版本不一致。
解决方法:删除现有SSIS相关引用,重新引用与运行环境版本一致的程序集,同时将程序集的复制本地属性设置为False,优先使用全局程序集缓存中的官方版本。
内容的提问来源于stack exchange,提问作者ravioli
相关产品推荐
相关产品推荐

