Сообщение об ошибке "Не удалось создать временные файлы агенту распространителя" при запуске агент распространения в SQL Server

Эта статья поможет вам обойти проблему при запуске агент распространения в SQL Server.

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 956032

Симптомы

На экземпляре Microsoft SQL Server, установленном на компьютере под управлением Windows 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:\Program Files\Microsoft SQL Server\<nnn>\COM эти файлы будут находиться в каталоге C:\Users\DistributionAgentAccount\AppData\Temp. — DistributionAgentAccount это учетная запись, в которой выполняется агент распространения.

Если учетная запись, запущенная агент SQL Server, не имеет доступа на запись в папку COM, агент распространения завершится ошибкой при выполнении в качестве задания. При запуске агент распространения из командной строки с помощью учетной записи, которая не имеет доступа на запись в com-папку, произойдет тот же сбой.

Обходной путь

Чтобы обойти эту проблему, предоставьте разрешения на запись в папку COM для учетной записи, в которую выполняется служба агент SQL Server. При запуске агент распространения из командной строки предоставьте разрешения на запись в папку COM для учетной записи, используемой для запуска агент распространения.

Примечание.

При изменении учетной записи, назначенной заданию репликации, учетная запись должна иметь разрешения на запись в папку COM.

Если вы по-прежнему сталкиваетесь с этой проблемой периодически после выполнения этих действий, убедитесь, что папка COM исключена из любой антивирусной проверки, которая происходит в системе.

Дополнительная информация

Код ошибки 5 указывает на ошибку "доступ запрещен".