【发布时间】:2019-11-08 14:55:45
【问题描述】:
我创建了一个 SSIS 包并尝试在本地运行它。我们使用指向 sql 表和 XML 配置文件的包配置。该程序包成功运行了大约一周,即使在我们的 STAGE 环境中部署到 SQL Server 代理作业也是如此。
现在,我可以让包运行的唯一方法是不使用包配置并选择 EncryptSensitivewithPassword。如果我将包更改为 DontSaveSensitive,我会不断收到以下错误:
一个 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80040E4D 描述:“用户‘Test_User’登录失败。”。 错误:AgentCompany 处的 0xC020801C,查找 [37]:SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“Test”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。在此之前可能会发布错误消息,其中包含有关 AcquireConnection 方法调用失败原因的更多信息。
奇怪的是,大约一周前,这个包在配置和 DontSaveSensitive 选项下运行良好。
我已更新配置文件以确保它正在建立与适当数据库的连接字符串。我还在连接管理器上测试了连接,它们都测试成功。
我还仔细检查了用户尝试连接的 SQL 数据库,以确保它在那里拥有权限并且确实如此。
我很困惑。请帮忙!
更新 dtsconfig 文件 重新创建连接管理器 使一些 DFT 任务 DelayValidation 为 true 将运行时更改为 32 位 删除包配置的 EncrpytPasswordSensitive --- 这可行,但这不是我公司的标准,这不是我之前开发和测试包的方式
【问题讨论】:
-
您在为您的 SSIS 包使用 SQL Server 用户,并且您设置了提供用户名和密码的配置,我猜? SSIS 包期望找到的 XML 文件在哪里?当你在本地运行它时,你是如何运行它的——在 Visual Studio 中或通过命令行运行它?
-
xml 配置文件位于作业将运行的服务器上。它位于 e:\ 文件位置,因此当我在本地运行时,我将 E 驱动器指向包含 xml 配置的测试服务器。当我在本地运行时,我按下播放按钮/f5
-
我首先查看 Visual Studio 中的结果/输出窗口。您正在寻找一个...信息(可能是警告)事件,该事件将指示应用配置值是否存在任何问题。除了这些,我会尝试将 SQL Server 连接管理器和任何使用所述连接管理器的数据流任务设置为
DelayValidation为 true。如果这样可以解决问题,则包在将配置应用于连接之前尝试验证资源。延迟允许配置激活。 -
好的,我可以试试这个。这很奇怪,因为我从来没有在我们的任何 ssis 包中将延迟验证设置为 true。
-
更新----没用。我将尝试在一个单独的 SSDT 实例中重建包并查看。很快就会回复。
标签: sql-server ssis database-connection error-code sql-job