在 SQL Server 中运行分发代理时出现“分发代理无法创建临时文件”错误消息
本文可帮助你在 SQL Server 中运行分发代理时解决此问题。
原始产品版本:SQL Server
原始 KB 编号: 956032
症状
在基于 Windows Server 的计算机上安装的 Microsoft SQL Server 实例上,配置事务发布。
Distribution Profile for OLEDB streaming
将配置文件用于分发代理。 运行分发代理时,会收到如下错误消息:
分发代理无法在 C:\Program Files\Microsoft SQL Server\<nnn>\COM 目录中创建临时文件。 系统返回错误代码 5。
注意
<nnn> 标识SQL Server的版本。 有关详细信息,请参阅 SQL Server 的默认实例和命名实例的文件位置。
原因
在 SQL Server 2019 之前,使用Distribution Profile for OLEDB streaming
分发代理的配置文件或使用自定义配置文件中的 OLEDB 流式处理时,分发代理会在目录中创建临时文件:C:\Program Files\Microsoft SQL Server\<nnn>\COM。
注意
在 SQL Server 2019 及更高版本中,这些临时文件现在在运行分发代理的帐户下创建,因此,这些文件将位于目录 C:\Users\DistributionAgentAccount\AppData\Temp 中,而不是目录 C:\Program Files\Microsoft SQL Server\<nnn>\COM。DistributionAgentAccount
是运行分发代理的帐户。
如果运行 SQL Server 代理 的帐户对 COM 文件夹没有写入访问权限,则分发代理在作为作业运行时会失败。 如果使用对 COM 文件夹没有写入访问权限的帐户从命令行运行分发代理,则会发生相同的失败。
解决方法
若要解决此问题,请为运行 SQL Server 代理 服务的帐户授予 COM 文件夹的写入权限。 如果从命令行运行分发代理,请为用于运行分发代理的帐户授予 COM 文件夹的写入权限。
注意
如果更改分配给复制作业的帐户,该帐户应具有对 COM 文件夹的写入权限。
如果在执行这些步骤后仍间歇性地遇到此问题,则应确保 COM 文件夹已从系统上发生的任何防病毒扫描中排除。
更多信息
错误代码 5 指示错误为“访问被拒绝”。