【发布时间】:2015-06-03 12:22:00
【问题描述】:
我是 asp mvc 的新手,我正在尝试执行备份数据库并从备份文件中恢复它的操作
这里是代码
public class BackupController : Controller
{
private RemasEntities1 db = new RemasEntities1();
// GET: Backup
public ActionResult BackupDatabase()
{
string dbPath = Server.MapPath("~/App_Data/DBBackup.bak");
using (var db = new RemasEntities1())
{
var cmd = String.Format("BACKUP DATABASE {0} TO DISK='{1}' WITH FORMAT, MEDIANAME='DbBackups', MEDIADESCRIPTION='Media set for {0} database';"
, "Remas", dbPath);
db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, cmd);
}
return new FilePathResult(dbPath, "application/octet-stream");
}
public ActionResult RestoreDatabase()
{
string dbPath = Server.MapPath("~/App_Data/DBBackup.bak");
using (var db = new RemasEntities1())
{
var cmd = String.Format("restore DATABASE {0} from DISK='{1}';"
, "Remas", dbPath);
db.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, cmd);
}
return View();
}
}
备份操作效果很好,但是当我尝试从恢复操作中恢复数据库时,它会抛出异常
entityframework.sqlserver.dll 中出现 sql.data.sqlexception' 类型的异常,但未在用户代码中处理
Restore 无法处理数据库“Remas”,因为该会话正在使用它。建议执行此操作时使用master数据库
【问题讨论】:
-
听起来您连接到
Remas数据库是为了恢复该数据库,而不是Master
标签: sql-server asp.net-mvc database-restore