分享方式:


當您在 SQL Server 中執行 散發代理程式 時,「散發代理程式無法建立臨時檔」錯誤訊息

本文可協助您解決在 SQL Server 中執行 散發代理程式 時的問題。

原始產品版本:SQL Server
原始 KB 編號: 956032

徵兆

在安裝在 Windows Server 型電腦上的 Microsoft SQL Server 實例上,您可以設定交易式發行集。 Distribution Profile for OLEDB streaming您將設定檔用於 散發代理程式。 當您執行 散發代理程式 時,會收到如下的錯誤訊息:

散發代理程式無法在 C:\Program Files\Microsoft SQL Server\nnn>\COM 目錄中建立臨時檔。< 系統傳回錯誤碼 5。

注意

<nnn> 會識別 SQL Server 的版本。 如需詳細資訊,請參閱 SQL Server 預設和具名執行個體的檔案位置

原因

當您在 SQL Server 2019 之前,使用 Distribution Profile for OLEDB streaming 散發代理程式 配置檔的配置檔或使用 OLEDB 串流時,散發代理程式 會在目錄中建立暫存盤:C:\Program Files\Microsoft SQL Server\<nnn>\COM

注意

在 SQL Server 2019 和更新版本中,這些暫存盤現在會建立在執行 散發代理程式 的帳戶之下,因此這些檔案會位於 C:\Users\DistributionAgentAccount\AppData\Temp 目錄中,而不是 C:\Program Files\Microsoft SQL Server\<nnn>\COM 目錄DistributionAgentAccount是執行 散發代理程式的帳戶。

如果執行 SQL Server Agent 的帳戶沒有 COM 資料夾的寫入許可權,散發代理程式 會在以作業的形式執行時失敗。 如果您使用沒有 COM 資料夾寫入許可權的帳戶,從命令行執行 散發代理程式,則會發生相同的失敗。

因應措施

若要解決此問題,請將執行 SQL Server Agent 服務的帳戶寫入許可權授與 COM 資料夾。 如果您從命令行執行 散發代理程式,請將您用來執行 散發代理程式 的帳戶寫入許可權授與 COM資料夾。

注意

如果您變更指派給複寫作業的帳戶,帳戶應該具有 COM資料夾的寫入許可權。

如果您在遵循這些步驟之後仍間歇性遇到此問題,您應該確定 COM 資料夾已從系統上發生的任何防毒掃描中排除。

其他相關資訊

錯誤碼 5 表示錯誤為「拒絕存取」。