C#异常:RESTORE DATABASE异常终止

时间:2015-12-30 10:55:03

标签: c# sql-server

我正在尝试使用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);
}

1 个答案:

答案 0 :(得分:0)

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