我正在创建一个作为服务运行的程序,并在白天的某些时间点进行数据库备份(使用pg_dump.exe)。该服务正常运行正常,但是当您尝试将它们放入网络驱动器时无法进行备份。如果我停止服务并手动运行可执行文件,它可以正常工作。
以下是程序写入命令行以运行备份的示例:
"E:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" -Ft -f "\\<computer name>\Backups\DBBackup" -U postgres -h <computer name> -p 5432 <Database Name>
我尝试将\\<computer name>\<backup directory>\
语法用于网络驱动器的位置,我也尝试在计算机上使用该驱动器的字母(S:\<backup directory>
)。当程序手动运行时,这两个选项都有效,但当它作为服务运行时都不起作用。我尝试在系统事件查看器日志中查找错误,但没有发现任何相关内容。
总而言之,程序将在作为服务运行时成功备份,但如果它尝试将它们写入网络驱动器则不会。当程序手动运行(而不是作为服务)时,它会成功写入网络驱动器。
有人知道为什么会这样吗?
答案 0 :(得分:0)
我通过使用帐户(特别是网络服务帐户)
进行服务登录来解决问题