在 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 的默认实例和命名实例的文件位置。
原因
将Distribution Profile for OLEDB streaming
配置文件用于分发代理或使用自定义配置文件中的 OLEDB 流式处理时,在 SQL Server 2019 之前,分发代理会在目录中创建临时文件: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 指示错误为“拒绝访问”。