C#异常:RESTORE DATABASE异常终止

本文关键字:DATABASE 异常终止 RESTORE 异常 | 更新日期: 2023-09-27 18:28:32

我正在尝试使用C#将数据库备份文件(.bak)还原到新创建的数据库中。我得到以下内部异常:

无法打开备份设备'''GC.bak'。操作系统错误5(访问被拒绝。)。
RESTORE DATABASE正在异常终止

我的服务器是一个localDB。

void RestoreDB(string name)
{
    var connection = new ServerConnection(Properties.Settings.Default.Well);
    var sqlServer = new Server(connection);
    var rstDatabase = new Restore();
    rstDatabase.Database = name;
    rstDatabase.Action = RestoreActionType.Database;
    rstDatabase.Devices.AddDevice(AppDomain.CurrentDomain.BaseDirectory + "GC.bak", DeviceType.File);
    rstDatabase.ReplaceDatabase = true;
    rstDatabase.SqlRestore(sqlServer);
}

C#异常:RESTORE DATABASE异常终止

默认情况下,SQL Server只能访问服务器驱动器上的几个特定位置(即默认的数据库和备份文件夹位置)。看起来您可能正在尝试从非标准位置还原文件,因此您需要将SQL server运行的服务帐户的权限授予该目录,或者更简单的做法是,将备份文件复制到常规备份文件位置,然后重试。