我的包由动态数据库连接组成。当我运行我的包时,它会抛出类似 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER 的错误。对连接管理器“conn”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。
我尝试在包级别将延迟验证属性设置为 true。
我试图将包保护级别属性更改为 EncryptSensitiveWithpassword。仍然面临同样的错误。
我能够手动运行包。
如何摆脱这个。
我的包由动态数据库连接组成。当我运行我的包时,它会抛出类似 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER 的错误。对连接管理器“conn”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。
我尝试在包级别将延迟验证属性设置为 true。
我试图将包保护级别属性更改为 EncryptSensitiveWithpassword。仍然面临同样的错误。
我能够手动运行包。
如何摆脱这个。
这可以通过2种方式解决
首先,我已将包级别的延迟验证属性从 false更改为True 。
将 ProtectionLevel 更改为EncryptSensitiveWithUserKey。
其次,删除旧的连接管理器并创建新的。
大多数情况下,第一种方法可以解决问题。
将包转换为包部署模型 请为连接字符串创建一个包配置文件。在此处保存密码。将包部署到单独的环境时,将包与配置文件一起复制。确保本地和新环境中的路径相同。这解决了我的问题
我在 dts(配置文件)中添加了端口号和数据库名称,并将提供程序添加为 SQLNCLI11,并在 dtsx 文件(SSIS 包)中添加了端口号和 IP 地址,它对我有用。
就我而言,我忘记为执行包的用户分配/授予对包中使用的数据库执行操作所需的权限。