使用ASP.NET Core控制台应用备份SQL数据库遇SqlException问题求助
解决SQL Server备份路径找不到的问题
核心原因
你遇到的问题本质是SQL Server服务账户没有目标路径的访问权限,或者你指定的路径是客户端本地路径而非生产服务器的路径——这是远程备份最容易踩的坑。
分步解决方案
确认路径是生产服务器本地路径
如果你在本地运行ASP.NET Core控制台应用,写C:\DB-Backup是指你自己的电脑,而不是生产服务器的硬盘。必须指定生产服务器上存在的路径,比如服务器的D:\DB-Backup,或者服务器上已创建的本地目录。给SQL Server服务账户加目录权限
- 登录生产服务器,打开
services.msc,找到你的SQL Server服务(比如SQL Server (MSSQLSERVER)),查看它的登录账户(通常是NT SERVICE\MSSQLSERVER或者域账户)。 - 找到目标备份目录(比如服务器上的
C:\DB-Backup),右键→属性→安全→编辑→添加,把刚才的服务账户加进去,勾选读取、写入、修改权限,保存。
- 登录生产服务器,打开
先在服务器上测试备份命令
直接在生产服务器的SSMS里执行备份命令验证路径和权限:BACKUP DATABASE finnid_live2 TO DISK = 'C:\DB-Backup\test_backup.bak' WITH INIT;如果这个命令能成功,再排查控制台应用的连接字符串是否指向正确的服务器实例,或者代码里是否有路径拼写错误。
如果需要备份到本地机器(客户端)
不要用本地绝对路径,而是在你的电脑上创建共享文件夹,给SQL Server服务账户分配共享权限和NTFS权限,然后用UNC路径,比如\\你的电脑名称\DB-Backup\finnid_live2_backup_20240618_113003.bak。
内容的提问来源于stack exchange,提问作者Hemant Nag
相关产品推荐
相关产品推荐

