【问题标题】:Error 0xC0011008 the package failed to load错误 0xC0011008 包加载失败
【发布时间】:2018-10-07 00:15:30
【问题描述】:

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

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

我尝试删除/创建作业,删除/创建SQL Server Agent Proxy 但没有成功。

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

这是 SQL Server 代理返回的错误:

由于错误 0xC0011008“从 XML 加载时出错。无法为此问题指定进一步的详细错误信息,因为没有传递事件对象的详细错误信息

SQL Server 版本:2014

SSIS 版本:2014

编辑:

在事件日志中,我从User Profile Service 中找到了一个Information Message,上面写着:

Windows 检测到您的注册表文件仍在被其他应用程序或服务使用。现在将卸载该文件。保存您的注册表文件的应用程序或服务之后可能无法正常运行

进程 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe) 已打开密钥 \REGISTRY\USER\SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Control Panel \国际

进程 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe) 已打开密钥 \REGISTRY\USER\SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Software\微软\Windows\当前版本

SID 对应于用于执行 SQL 作业步骤的 Proxy User。并且SQL Agent出错时对应的时间戳是一样的。

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

我们能否阻止 Windows 卸载此注册表?

【问题讨论】:

  • 您如何尝试执行包,因为您使用的是 SQL Server 2014 我假设您正在使用 SSISDB?
  • 包存储在MSDB,我使用DTEXEC来执行它。
  • 您为什么不使用 SSISDB?我相信你遇到的问题不会存在。

标签: sql-server windows-services windows-server-2012 sql-agent-job ssis-2014


【解决方案1】:

该错误确实是由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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 2023-04-01
    • 2018-12-20
    • 1970-01-01
    • 2021-04-14
    • 2017-07-04
    • 2021-07-09
    相关资源
    最近更新 更多