Message d’erreur « L’agent de distribution n’a pas pu créer de fichiers temporaires » lorsque vous exécutez le Agent de distribution dans SQL Server

Cet article vous aide à contourner le problème lorsque vous exécutez le Agent de distribution dans SQL Server.

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 956032

Symptômes

Sur un instance de Microsoft SQL Server installé sur un ordinateur Windows Server, vous configurez une publication transactionnelle. Vous utilisez le Distribution Profile for OLEDB streaming profil pour le Agent de distribution. Lorsque vous exécutez le Agent de distribution, vous recevez un message d’erreur semblable au suivant :

L’agent de distribution n’a pas pu créer de fichiers temporaires dans le répertoire C :\Program Files\Microsoft SQL Server\<nnn>\COM. Le système a retourné le code d’erreur 5.

Remarque

<nnn> identifie la version de SQL Server. Pour plus d’informations, consultez Emplacements des fichiers pour les instances par défaut et nommées de SQL Server.

Cause

Lorsque vous utilisez le Distribution Profile for OLEDB streaming profil pour le Agent de distribution ou que vous utilisez le streaming OLEDB dans un profil personnalisé, avant SQL Server 2019, le Agent de distribution crée des fichiers temporaires dans le répertoire : C :\Program Files\Microsoft SQL Server\<nnn>\COM.

Remarque

Dans SQL Server 2019 et versions ultérieures, ces fichiers temporaires sont désormais créés sous le compte qui exécute le Agent de distribution. Par conséquent, au lieu du répertoire C :\Program Files\Microsoft SQL Server\<nnn>\COM, ces fichiers se trouvent dans le répertoire C :\Users\DistributionAgentAccount\AppData\Temp. est DistributionAgentAccount le compte sous lequel le Agent de distribution s’exécute.

Si le compte qui exécute SQL Server Agent n’a pas accès en écriture au dossier COM, l’Agent de distribution échoue lorsqu’il s’exécute en tant que travail. Si vous exécutez le Agent de distribution à partir d’une ligne de commande à l’aide d’un compte qui n’a pas accès en écriture au dossier COM, le même échec se produit.

Solution de contournement

Pour contourner ce problème, accordez des autorisations d’écriture au dossier COM pour le compte qui exécute le service SQL Server Agent. Si vous exécutez le Agent de distribution à partir d’une ligne de commande, accordez des autorisations d’écriture au dossier COM pour le compte que vous utilisez pour exécuter le Agent de distribution.

Remarque

Si vous modifiez le compte affecté au travail de réplication, le compte doit disposer d’autorisations d’écriture sur le dossier COM.

Si vous rencontrez toujours ce problème par intermittence après avoir suivi ces étapes, vous devez vous assurer que le dossier COM est exclu de toute analyse antivirus qui se produit sur le système.

Plus d’informations

Le code d’erreur 5 indique que l’erreur est « l’accès est refusé ».