sql-server - 错误 0xC0011008 包加载失败
问题描述
我SQL Server Agent
在执行SSIS
包时面临一种奇怪的行为。
我的工作包括许多步骤(主要是 SSIS 包)。有些步骤几乎每天都会失败,即使所有步骤的配置都相同。
我试图删除/创建作业,删除/创建SQL Server Agent Proxy
但没有成功。
我找不到失败的步骤和成功的步骤之间的任何区别。
这是 SQL Server 代理返回的错误:
由于错误 0xC0011008 “从 XML 加载时出错。无法为此问题指定更多详细的错误信息,因为没有传递详细错误信息的事件对象
SQL Server 版本:2014
SSIS 版本:2014
编辑 :
在事件日志中,我发现了一个Information Message
说User Profile Service
:
Windows 检测到您的注册表文件仍在被其他应用程序或服务使用。现在将卸载该文件。保存您的注册表文件的应用程序或服务之后可能无法正常运行
进程 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe) 已打开密钥 \REGISTRY\USER\SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Control Panel\International
进程 5924 (\Device\HarddiskVolume2\Program Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe) 已打开密钥 \REGISTRY\USER\SXX-XX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-XXXX\Software\Microsoft\Windows \当前版本
SID
对应于Proxy User
用于执行 SQL 作业的步骤。并且在 SQL Agent 中发生错误时,时间戳对应的是相同的。
我认为这是导致步骤失败的原因。
我们可以阻止 Windows 卸载此注册表吗?
解决方案
User Profile Service
该错误确实是由强制卸载注册表的事实引起的。
对我有用的解决方案是将策略设置Do not forcefully unload the user registry at user logoff
从“未配置”更改为“启用” 。
启动本地组策略编辑器 (
gpedit.msc
)转到计算机配置>管理模板>系统>用户配置文件
将“不要在用户注销时强制卸载用户注册表”设置为启用
运行
gpupdate
命令。
详细信息可以在这里找到:https: //support.microsoft.com/en-us/help/2287297/a-com-application-may-stop-working-on-windows-server-2008-when-a-user
推荐阅读
- javascript - 如何使用 RXJS 将属性推送到数组中?
- javascript - handlebars.js ...动态对象括号选择器
- linux - rsync 命令有效,但不能作为 cronjob
- c# - C#中的结构化绑定?
- php - 带有 SQL 查询的 PHP 函数不返回值
- java - 用于 java war 和 php 的 Apache Web 服务器或 Tomcat
- android - 我应该如何在两个片段中使用 ViewModel?
- bash - 谁能帮我理解这个 bash 脚本?
- python - 在python中查找从低到高的状态转换(使用二进制搜索)
- python - 如何用代码块装饰实例并访问/使用实例的变量?