在 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>\COMDistributionAgentAccount是运行分发代理的帐户。

如果运行 SQL Server 代理 的帐户对 COM 文件夹没有写入访问权限,则分发代理在作为作业运行时会失败。 如果使用对 COM 文件夹没有写入访问权限的帐户从命令行运行分发代理,则会发生相同的失败。

解决方法

若要解决此问题,请为运行 SQL Server 代理 服务的帐户授予 COM 文件夹的写入权限。 如果从命令行运行分发代理,请为用于运行分发代理的帐户授予 COM 文件夹的写入权限。

注意

如果更改分配给复制作业的帐户,该帐户应具有对 COM 文件夹的写入权限。

如果在执行这些步骤后仍间歇性地遇到此问题,则应确保 COM 文件夹已从系统上发生的任何防病毒扫描中排除。

更多信息

错误代码 5 指示错误为“访问被拒绝”。