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 consente di 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 errore 5.

Nota

<nnn> identifica la versione di SQL Server. Per altre informazioni, vedere Percorsi file per le istanze predefinite e denominate di SQL Server.

Causa

Quando si usa il Distribution Profile for OLEDB streaming profilo per il agente di distribuzione o si usa il flusso 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.

Nota

In SQL Server 2019 e versioni successive, questi file temporanei vengono ora creati nell'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 con 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 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.

Nota

Se si modifica l'account assegnato al processo di replica, l'account deve disporre delle autorizzazioni di scrittura per la cartella COM.

Se questo problema persiste 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".