0

我有这个创建数据库备份的代码片段:

try
{
  string connStr = "<valid connection string>";

  using (SqlConnection conn = new SqlConnection(connStr))
  {
    conn.Open();

    string sqlStmt = String.Format("BACKUP DATABASE InventoryDB TO DISK='{0}'", 
                                      DBBackupSaveFileDialog.FileName);

    using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
    {
      bu2.ExecuteNonQuery();
    }
...

问题是它在开发人员电脑上工作正常但是当我在不同的机器上尝试时会出现这个错误

无法打开备份设备“C:\User\Saleh\Documents\12.bak”。操作系统错误 5(无法检索此错误的文本。原因:15105)。

4

1 回答 1

2

您需要确保 SQL Server 服务帐户对C:\Users\Saleh\

首先,查看 SQL Server 以什么帐户运行。控制面板 > 管理工具 > 服务,右键单击相关的 SQL Server 服务,点击属性,然后查看登录选项卡上列出的帐户。现在转到 Windows 资源管理器,右键单击文件夹,点击属性,然后在安全选项卡上,您可以将此用户帐户添加到列表中,并确保他们具有写入权限。如果您对此有进一步的问题,您的问题可能应该交给 superuser.com,因为它正在成为 Windows / 权限问题,而不是编程问题。

更好的是,停止运行对用户文件夹的备份 - 使用 SQL Server 的备份文件夹,SQL Server 已经有权写入该文件夹。如果您以后需要移动它,请单独进行。

于 2012-08-30T17:35:26.073 回答