我正在尝试从我的代码创建sql服务器备份并执行该操作。但是当Path是在驱动器C中:(例如:文档或桌面)无法创建备份。怎么了?
try
{
string DES = GenerateBackupLocation(Destination);
string databaseName = "MyDataBase";
Backup sqlBackup = new Backup();
sqlBackup.Action = BackupActionType.Database;
sqlBackup.BackupSetDescription = "BackUp of:" + databaseName + "on" + DateTime.Now.ToShortDateString();
sqlBackup.BackupSetName = "FullBackUp";
sqlBackup.Database = databaseName;
BackupDeviceItem deviceItem = new BackupDeviceItem(DES + "\\" + databaseName + ".bak", DeviceType.File);
SqlConnection con = new SqlConnection(Connectionstring);
ServerConnection connection = new ServerConnection(con);
Server sqlServer = new Server(connection);
sqlServer.ConnectionContext.StatementTimeout = 60 * 60;
Database db = sqlServer.Databases[databaseName];
sqlBackup.Initialize = true;
sqlBackup.Checksum = true;
sqlBackup.ContinueAfterError = true;
sqlBackup.Devices.Add(deviceItem);
sqlBackup.Incremental = false;
sqlBackup.ExpirationDate = DateTime.Now.AddDays(3);
sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;
sqlBackup.FormatMedia = false;
sqlBackup.SqlBackup(sqlServer);
sqlBackup.Devices.Remove(deviceItem);
Message = "Backup Ok";
}
catch
{
Message = "Can't Create Backup";
}
最有可能的情况是您正在尝试备份到SQL Server服务(即不是您)没有写权限的文件夹。
运行SQL Server配置管理器,并检查谁执行SQL Server。检查他们对该路径的许可。
而且,不是所有备份设备的东西,等等。您只需执行一个SQL Server命令进行备份,即BACKUP dbname TO DISK ='path'WITH options ;,可能会容易得多。