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 base de connaissances d’origine : 956032
Symptômes
Sur une instance de Microsoft SQL Server installée 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 comme suit :
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 . Code d’erreur retourné par le système 5.
Note
<nnn> identifie la version de SQL Server. Pour plus d’informations, consultez Emplacements des fichiers pour les instances par défaut et les instances nommées de SQL Server.
Cause
Lorsque vous utilisez le Distribution Profile for OLEDB streaming
profil pour l’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.
Note
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. Il DistributionAgentAccount
s’agit du compte sous lequel le Agent de distribution est en cours d’exécution.
Si le compte qui exécute SQL Server Agent n’a pas d’accès en écriture au dossier COM, le 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 d’accès en écriture au dossier COM, la même défaillance se produit.
Solution de contournement
Pour contourner ce problème, accordez des autorisations d’écriture au dossier COM du compte exécutant 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 du compte que vous utilisez pour exécuter le Agent de distribution.
Note
Si vous modifiez le compte affecté au travail de réplication, le compte doit disposer d’autorisations d’écriture dans 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é ».