【发布时间】:2013-05-28 15:42:05
【问题描述】:
使用 C# 和 SMO,当我创建备份时,它们被复制到 SQL Server 使用的默认备份位置 (C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup),而不是物理位置我在代码中指定:
Database database = Server.Databases[dbName]);
Backup backup = new Backup();
device = new BackupDevice();
device.Parent = Server;
device.Name = dbName + ".bak";
device.BackupDeviceType = BackupDeviceType.Disk;
device.PhysicalLocation = Path.Combine(filePath + device.Name); // doesn't appear to do anything
device.Create();
backup.Action = BackupActionType.Database;
backup.Database = database.Name;
backup.Devices.AddDevice(filePath, DeviceType.File);
backup.SqlBackup(server);
当我运行我的代码时,我发现我指定的路径(“C:\backupTest”)为空,并且备份已添加到默认备份位置。
有人知道这是为什么吗?
【问题讨论】:
-
验证服务是否有权访问您指定的位置。您的代码应该可以工作,因为它与此答案中的代码几乎相同; stackoverflow.com/questions/2472316/…
-
我向目标文件夹添加了“所有人”权限,但它仍将备份添加到默认文件夹。虽然如果是权限问题不会抛出异常吗?