我正在创建一个作为服务运行的程序,并在白天的某些时间点进行数据库备份(使用 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>
)。当程序手动运行时,这两个选项都有效,但当它作为服务运行时,这两个选项都不起作用。我尝试在系统事件查看器日志中查找错误,但没有发现任何相关内容。
总而言之,该程序在作为服务运行时会成功备份,但如果它试图将它们写入网络驱动器则不会。当程序手动运行(而不是作为服务)时,它会成功写入网络驱动器。
有人知道为什么会这样吗?