错误 0xC0011008 包加载失败

Error 0xC0011008 the package failed to load

我在执行 SSIS 个包时遇到 SQL Server Agent 的奇怪行为。

我的工作包括很多步骤(主要是 SSIS 包)。有些步骤几乎每天都会失败,即使所有步骤的配置都相同。

我尝试 delete/create 这份工作,delete/create SQL Server Agent Proxy 但没有成功。

我找不到失败的步骤和成功的步骤之间的任何区别。

这是 SQL 服务器代理返回的错误:

The package failed to load due to error 0xC0011008 "Error loading from XML. No further detailed error information can be specified for this problem because no Events object was passed where detailed error information

SQL 服务器版本:2014

SSIS 版本:2014

编辑:

在事件日志中我发现 User Profile Service 中的 Information Message 说:

Windows detected your registry file is still in use by other applications or services. The file will be unloaded now. The applications or services that hold your registry file may not function properly afterwards

Process 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server0\DTS\Binn\DTExec.exe) has opened key \REGISTRY\USER\S-X-X-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Control Panel\International

Process 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server0\DTS\Binn\DTExec.exe) has opened key \REGISTRY\USER\S-X-X-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Software\Microsoft\Windows\CurrentVersion

SID 对应于 Proxy User 用于执行 SQL 作业步骤。 SQL Agent.

出错时对应的时间戳相同

我认为这就是导致步骤失败的原因。

我们可以阻止 Windows 卸载此注册表吗?

确实是User Profile Service强制卸载注册表导致的错误。

对我有用的解决方案是将策略设置 Do not forcefully unload the user registry at user logoff 从“未配置”更改为 已启用

  1. 启动本地组策略编辑器(gpedit.msc)

  2. 转到计算机配置 > 管理模板 > 系统 > 用户配置文件

  3. 将“用户注销时不强制卸载用户注册表”设置为已启用

  4. 运行 gpupdate 命令。

可以在这里找到详细信息:https://support.microsoft.com/en-us/help/2287297/a-com-application-may-stop-working-on-windows-server-2008-when-a-user