Messaggio di errore "L'agente di distribuzione non è riuscito a creare file temporanei" quando si esegue il agente di distribuzione in SQL Server
Questo articolo illustra come risolvere il problema quando si esegue il agente di distribuzione in SQL Server.
Versione originale del prodotto: SQL Server
Numero KB originale: 956032
Sintomi
In un'istanza di Microsoft SQL Server installata in un computer basato su Windows Server, si configura una pubblicazione transazionale. Usare il Distribution Profile for OLEDB streaming
profilo per il agente di distribuzione. Quando si esegue il agente di distribuzione, viene visualizzato un messaggio di errore simile al seguente:
L'agente di distribuzione non è riuscito a creare file temporanei nella directory C:\Programmi\Microsoft SQL Server\<nnn>\COM . Il sistema ha restituito il codice di errore 5.
Note
<nnn> identifica la versione di SQL Server. Per altre informazioni, vedere Percorsi dei file per le istanze predefinite e denominate di SQL Server.
Causa
Quando si usa il profilo per il Distribution Profile for OLEDB streaming
agente di distribuzione o si usa lo streaming OLEDB in un profilo personalizzato, prima di SQL Server 2019, il agente di distribuzione crea file temporanei nella directory: C:\Programmi\Microsoft SQL Server\<nnn>\COM.
Note
In SQL Server 2019 e versioni successive questi file temporanei vengono ora creati con l'account che esegue il agente di distribuzione, quindi anziché la directory C:\Programmi\Microsoft SQL Server\<nnn>\COM, questi file si trovano nella directory C:\Users\DistributionAgentAccount\AppData\Temp. DistributionAgentAccount
è l'account in cui è in esecuzione il agente di distribuzione.
Se l'account che esegue SQL Server Agent non ha accesso in scrittura alla cartella COM, il agente di distribuzione avrà esito negativo quando viene eseguito come processo. Se si esegue il agente di distribuzione da una riga di comando usando un account che non ha accesso in scrittura alla cartella COM, si verificherà lo stesso errore.
Soluzione alternativa
Per risolvere questo problema, concedere le autorizzazioni di scrittura alla cartella COM per l'account che esegue il servizio SQL Server Agent. Se si esegue il agente di distribuzione da una riga di comando, concedere le autorizzazioni di scrittura alla cartella COM per l'account usato per eseguire il agente di distribuzione.
Note
Se si modifica l'account assegnato al processo di replica, l'account deve disporre delle autorizzazioni di scrittura per la cartella COM.
Se si verifica ancora questo problema in modo intermittente dopo aver seguito questi passaggi, è necessario assicurarsi che la cartella COM sia esclusa da qualsiasi analisi antivirus che si verifica nel sistema.
Ulteriori informazioni
Il codice di errore 5 indica che l'errore è "accesso negato".